addslashes "Problem"
Christoph
- php
Hallo,
bei meinem SQL-INSERT-Statement benutze ich ua. addslashes. Wenn man z.B. jetzt Gänsefüßchen eingibt etwa so: "dummdidumm" dann speichert er das ganze in der Datenbank so ab: \"dummdidumm\"
Mit stripslashes gebe ich jetzt die DB-Einträge wieder aus, aber ein Backslash () bleibt immer stehen, also er entfernt nur 2 von 3...
Mein Code:
Code:
$q = sprintf("INSERT INTO gast (name, email, hp, inhalt, datum) VALUES ('%s','%s','%s','%s','".time()."')",
utf8_decode(mysql_real_escape_string(addslashes(strip_tags($_POST["name"])))),
utf8_decode(mysql_real_escape_string(addslashes(strip_tags($_POST["email"])))),
utf8_decode(mysql_real_escape_string(addslashes(strip_tags($_POST["hp"])))),
utf8_decode(mysql_real_escape_string(addslashes(strip_tags($_POST["meinung"])))));
$query_result = mysql_query($q);
Wo liegt mein Denkfehler? Vielen Dank für eure Hilfe!
Grüße Christoph
Moin!
bei meinem SQL-INSERT-Statement benutze ich ua. addslashes.
Warum? Du benutzt doch schon mysql_real_escape_string().
Das einzige Problem sind dann noch die magic_quotes_gpc(), die zusätzlich in übermittelte Formulardaten Slashes einfügen, und die man, sofern diese Option gesetzt ist, mit stripslashes wieder entfernen muß. Alternativ kann man auch versuchen, mit einer .htaccess-Datei oder durch Direktkonfiguration in der php.ini diese Einstellung abzuschalten.
Bei der Ausgabe aus der Datenbank hat man dann slash-freien Text.
- Sven Rautenberg