Anführungszeichen in Formularen

Blinddarm

Blinddarm

Mitglied
Thread Starter
Dabei seit
03.01.2006
Beiträge
674
Reaktionspunkte
62
Hallo,

Ich hab ein Problem, das vermutlich typisch für Anfänger ist. Aber trotzdem: Ich will das Geschreibsel, das jemand in ein Formular eingetragen hat, auswerten. Aber der Benutzer kann ja auch einfache oder doppelte Anführungszeichen eingeben. Das gibt dann später Ärger. Vor jedem Anführungszeichen erscheint ein umgedrehter Schrägstrich...

Was tun? :confused:

Danke!:)
 
tschuldigung aber ich versteh deine frage gerade nicht :(
du hast ein formular dass an eine datei geschickt wird. mit php?
in der ausgabe des formular-inhalts erscheinen die schrägstriche oder willst du welche automatisch hinzufügen damit es da in der weiteren verarbeitung keine probleme gibt?

gruß,
julius
 
Code:
stripslashes($text_mit_backslashes);
 
Code:
stripslashes($text_mit_backslashes);

OK, diese Funktionen sind sehr nützlich und tun ganz offensichtlich ihren Dienst klaglos.

Trotzdem habe ich noch ein Problem. Man stelle sich vor:

Ein Formular nimmt Daten auf. In einigen Feldern soll der Benutzer auch Anführungszeichen etc. schreiben können. Das tut er dann auch glatt. Nun wird das Formular verschickt, und es werden (offensichtlich automatisch) Slashes vor die sensiblen Zeichen gesetzt. Die Formulardaten kommen also bereits geslasht bei meinen PHP-Script an, das diese Daten nun in die Datenbank schreiben soll.

Nun, warum auch nicht. Im PHP-Manual steht, dass auch fürs Schreiben in Datenbanken Slashes drin sein müssen. Aber trotzdem geht's nicht. Enthält ein String ein Anführungszeichen, so wird der String genau bis zum Anführungszeichen (genauer gesagt: bis zum Slash, der das Anführungszeichen maskieren soll) in die Datenbank geschrieben, der Rest des Strings fehlt.

Vielleicht liegt es auch an der Art und Weise, wie ich die Daten in die Datenbank schiebe. Seht selbst:
Code:
$result=MYSQL_QUERY("INSERT INTO tabelle (Albert, Bernhard, Hans, Franz, Heinrich, Manfred) "."VALUES ('$albertwert','$bernhardwert','$hanswert','$franzwert','$heinrichwert', '$manfredwert')");

Ist es das, was hier nicht stimmt?
 
Was passiert, wenn Du explizit slashes setzen lässt, über addslashes() oder Konsorten?
 
Vielleicht liegt es auch an der Art und Weise, wie ich die Daten in die Datenbank schiebe. Seht selbst:
Code:
$result=MYSQL_QUERY("INSERT INTO tabelle (Albert, Bernhard, Hans, Franz, Heinrich, Manfred) "."VALUES ('$albertwert','$bernhardwert','$hanswert','$franzwert','$heinrichwert', '$manfredwert')");

Ist es das, was hier nicht stimmt?
Ja da stimmt so einiges nicht. Stichwort: SQL-Injection(Gegenmaßnahmen).

Wegen deinen Backslashes guck dir mal http://www.php.net/manual/de/security.magicquotes.php an, dort wird dieses nervige Verhalten von PHP genauer erklärt(wird anscheinend in PHP6 auch rausgeschmissen)
 
Zuletzt bearbeitet:
Was passiert, wenn Du explizit slashes setzen lässt, über addslashes() oder Konsorten?

Dann wird's noch schlimmer. Weshalb ich vermute, dass die SQL-Operation falsch formuliert ist.
 
Zurück
Oben Unten