tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
940
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    -André- -André- ist offline Mitglied Gold
    Registriert seit
    Jul 2006
    Beiträge
    115
    Hallo,
    ich habe mir lokal auf meinem Testserver eine MySQL Datenbaknk angelegt, zum Testen habe ich eine Seite, in der ein Formular mit Textfeld ist. Der Text aus dem Textfeld wird wieder an die Seite gesendet und mit
    PHP-Code:
    $angabe $_POST["Angabe"];
    $query $angabe;
    $result mysql_query($query,$Test) or die(mysql_error()); 
    an die Datenbank versandt.
    wenn ich als Test beispielsweise
    Code :
    1
    
    SELECT * FROM talelle1 WHERE stufe LIKE 'forte' ORDER BY id ASC
    eintippe klappt das auch hervorragend.

    Ich habe jetzt die gleiche Tabelle auf unseren Server geladen.
    wenn ich jetzt den gleiche Text in das Textfeld eintippe, meldet MySQL einen Fehler.
    Ich habe herausgefunden, dass die einfachen Anführungszeichen falsch dargestellt werden, aus
    Code :
    1
    
    SELECT * FROM talelle1 WHERE stufe LIKE 'forte' ORDER BY id ASC
    wir nach dem versenden
    Code :
    1
    
    SELECT * FROM talelle1 WHERE stufe LIKE \'forte\' ORDER BY id ASC
    , was MYSQL nicht erkennt.

    Wie kann ich das abändern, dass die $_Post-Variablen richtig übermittelt werden?

    Gruß

    -André-
     

  2. #2
    l0c4lh05t l0c4lh05t ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    200
    PHP-Code:
    $angabe $_POST["Angabe"]; 
    zu
    PHP-Code:
    $angabe str_replace("/"""$_POST["Angabe"]); 
    Alternativ würde sich auch die Funktion "stripslashes" (oder wie auch immer) anbieten. Einfach mal auf php.net die Funktionsreferenzen durchstöbern, bin sicher du wirst auch noch auf bessere Alternativen stoßen, aber "str_replace" sollte es auf jeden Fall tun.

    Dein Server fügt dem eingegangenen Request Slashes hinzu, weil in der php.ini "Magic Quotes" aktiviert wurde(n).

    Die SQL Queries über POST zu senden halte ich für das Leichtsinnigste, was man überhaupt machen kann.

    Beachte bitte das aktuelle Thread zum Thema SQL Injektionen.
     


  3. #3
    Registriert seit
    Dec 2002
    Ort
    Trier
    Beiträge
    17.502
    Blog-Einträge
    10
    Wie generierst du denn die Datenbankabfrage?
     
    Markus Wulftange

  4. #4
    l0c4lh05t l0c4lh05t ist offline Mitglied Gold
    Registriert seit
    Nov 2006
    Beiträge
    200
    Zitat Zitat von Gumbo Beitrag anzeigen
    Wie generierst du denn die Datenbankabfrage?
    Die Antwort zu dieser Frage wird wohl kaum sein Problem lösen *hehe*
    Sein Skript hat ja auf dem lokalen Rechner funktioniert - also sind es doch die Magic Quotes, oder nicht?
    Nie kriege ich mal ein "Ja, gut gemacht, ist genau so wie du schreibst, danke l0ci, hier hast du ein Keks" zu lesen
     


  5. #5
    -André- -André- ist offline Mitglied Gold
    Registriert seit
    Jul 2006
    Beiträge
    115
    Vielen dank für die Antwort, das mit der Funktion str_replace klappt hervorragend.
    Ich habe jetzt auch die Funktion mysql_real_escape_string() hizugefügt. Ich hoffe, das macht das Sript ein wenig sicherer, oder?

    Gruß

    -André-
    Geändert von -André- (26.02.08 um 11:43 Uhr)
     

Ähnliche Themen

  1. Von MySQL, Schleifen und POST-Daten ...
    Von whisp3r im Forum PHP
    Antworten: 3
    Letzter Beitrag: 20.05.08, 21:54
  2. schicken von Post daten via header
    Von judos im Forum PHP
    Antworten: 6
    Letzter Beitrag: 09.12.06, 16:20
  3. Per GET und POST schicken
    Von jackob100 im Forum PHP
    Antworten: 1
    Letzter Beitrag: 21.05.06, 17:26
  4. Per Formular Daten an MYSQL schicken
    Von hemorieder im Forum PHP
    Antworten: 6
    Letzter Beitrag: 06.11.04, 13:44
  5. POST Variablen per PHP schicken
    Von Blandorin im Forum PHP
    Antworten: 11
    Letzter Beitrag: 08.06.04, 09:27