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

  • Molt
    hat ein Thema erstellt [Erledigt] INSERT ... VALUES mit Hochkommas?.

    [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')");
    ?>

  • David
    antwortet
    Dreht sich irgendwie ein bisschen im Kreis hier, oder? Ein ziemlich kleiner Kreis.

    Einen Kommentar schreiben:


  • Papst
    antwortet
    mysql_real_escape_strin() -> PHP MAnual nachschlagen

    Einen Kommentar schreiben:


  • Molt
    antwortet
    Also Hochkommas?

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

    Einen Kommentar schreiben:


  • Papst
    antwortet
    Code:
    `id` | `username` | `position`
    1 | 'Name' | 'position'

    Einen Kommentar schreiben:


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

    Hochkommas oder nicht?
    »admin« ist ein Feldinhalt.

    Einen Kommentar schreiben:


  • David
    antwortet
    Ist admin ein Feld der Tabelle oder eine Zeichenkette?

    Einen Kommentar schreiben:


  • Molt
    antwortet
    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'"); 

    Einen Kommentar schreiben:


  • David
    antwortet
    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.

    Einen Kommentar schreiben:


  • Molt
    antwortet
    Ach so ist das...
    Danke!

    Einen Kommentar schreiben:


  • Montellese
    antwortet
    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.

    Einen Kommentar schreiben:


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

    Einen Kommentar schreiben:


  • Sven
    antwortet
    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.

    Einen Kommentar schreiben:


  • Molt
    antwortet
    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;

    ?

    Einen Kommentar schreiben:


  • David
    antwortet
    1) ist noch ungenügend. Du brauchst mysql_real_escape_string.

    Einen Kommentar schreiben:

Lädt...
X