Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] INSERT ... VALUES mit Hochkommas?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • [Erledigt] INSERT ... VALUES mit Hochkommas?

    Stimmt diese Variante?:
    PHP-Code:
    <?php
    /* Variabeln definiert */
    mysql_query("INSERT INTO links (url, urlname, name,
    banner, beschreibung) VALUES ('
    $url', '$hpname',
    '
    $name', '$banner','$beschreibung')");
    ?>

  • #2
    Kommt 1) darauf an, was Du mit $url, $hpname, $name, $banner und $beschreibung gemacht hast.
    2) Fehlt da die Fehlerroutine.

    Mann, die url Funktion dieses Boards ist vielleicht nervig schlecht. Bitte selbst zusammenkopieren
    http:// php . net/mysql_real_escape_string
    http:// php . net/mysql_error

    Kommentar


    • #3
      1)
      PHP-Code:
      $url $_POST["url"];
        
      $hpname $_POST["hpname"];
        
      $name $_POST["name"];
        
      $banner $_POST["banner"];
        
      $beschreibung $_POST["beschreibung"]; 
      2) Danke für den Tipp

      Kommentar


      • #4
        1) ist noch ungenügend. Du brauchst mysql_real_escape_string.

        Kommentar


        • #5
          Noch ne Frage:
          nach diesem Teil:

          PHP-Code:
          $a mysql_query(SELECT blablabla FORM bliblibli);
          while(
          $a mysql_fetch_assoc($a)) 
          kommt dann
          PHP-Code:
          {
          echo 
          $a;

          oder
          PHP-Code:
          {
          echo 
          $blablabla;

          ?

          Kommentar


          • #6
            PHP-Code:
            <?php
            /* Variabeln definiert */
            mysql_query("INSERT INTO `links` (url, urlname, name,
            banner, beschreibung) VALUES ('"
            $urlx ."', '"$hpnamex ."',
            '"
            $namex ."', '"$bannerx ."','"$beschreibungx ."')") or die('Klappt nicht!');
            ?>
            Die Variablen solltest du vorher auf jeden Fall filtern, es sei denn bei dir ist XSS ein Feature.

            Kommentar


            • #7
              Filtern?
              PHP-Code:
              ereg_replace(böse,nett,variable); 
              ???

              Kommentar


              • #8
                Zu der Frage mit dem SELECT:

                1. musst du Anführungszeichen um den ganzen SQL-Query machen, sonst gibt es einen netten Fehler.
                2. $a ist nun ein Array mit allen Werten, die du im Query als Ausgabe zulässt (bei dir blablabla). => $a['blablabla'] gibt dir den Wert in der momentanen Zeile aus.

                Kommentar


                • #9
                  Ach so ist das...
                  Danke!

                  Kommentar


                  • #10
                    Aber nicht $a = mysql_fetch_assoc($a); sondern $b=mysql_fetch_assoc($a);
                    Noch besser: sprechende Bezeichner verwenden.
                    PHP-Code:
                    $sql 'SELECT blabla FROM tbl';
                    $result mysql_query($sql$dblink);
                    if (!
                    $result) {
                      
                    // Fehlerbehandlung
                    }

                    while( (
                    $row=mysql_fetch_array($resultMYSQL_ASSOC)) !== false) {
                      echo 
                    $row['blabla'], '<br />';

                    Und zum "Filtern": Wenn Du Daten in mysql speichern willst, musst Du dafür sorgen, dass "böse" Zeichen markiert werden.
                    Zum Beispiel:
                    PHP-Code:
                    $x "1' or '1'='1";
                    $sql "SELECT blabla FROM tbl WHERE x='$x'"
                    Und schon hast Du die Abfrage SELECT blabla FROM tbl WHERE x='1' or 1='1' und das liefert Dir alle Datensätze.
                    Schau Dir das Gleiche mal mit
                    PHP-Code:
                    $x mysql_real_escape_string($x); 
                    direkt vor der $sql Zeile an.
                    Also entweder so. Oder Du verwendest mysqli oder pdo mit gebundenen Parametern. Da kannst Du Dir das mysql_real_escape_string sparen.

                    Kommentar


                    • #11
                      Ist das richtig:
                      PHP-Code:
                      mysql_query("SELECT id,username FROM users WHERE position LIKE admin"); 
                      oder das?:
                      PHP-Code:
                      mysql_query("SELECT id,username FROM users WHERE position LIKE 'admin'"); 

                      Kommentar


                      • #12
                        Ist admin ein Feld der Tabelle oder eine Zeichenkette?

                        Kommentar


                        • #13
                          Tabelle:
                          ————————————
                          | id | username | position | ... |
                          | 1 ''| Molt '''''''''' | admin ''''' | ... |
                          | 2 ''| Andi '''''''''' | mod '''''''''' | ... |
                          | 3 ''| salgo ''''''''' | smod ''''''' | ... |

                          Hochkommas oder nicht?
                          »admin« ist ein Feldinhalt.

                          Kommentar


                          • #14
                            Code:
                            `id` | `username` | `position`
                            1 | 'Name' | 'position'

                            Kommentar


                            • #15
                              Also Hochkommas?

                              Dann hätt' ich noch gern gewusst, was ich machen soll, wenn ein User in irgendein Feld ein ' oder ein " eingibt.

                              Kommentar

                              Lädt...
                              X