dclp FAQ

FAQ der Newsgroups de.comp.lang.php.*

 
  • Increase font size
  • Default font size
  • Decrease font size

Datenbanken

Wieso wird aus " plötzlich \" und wie geht das wieder weg?

E-MailDruckenPDFLesezeichen anlegen: Du musst dich einloggen um ein Lesezeichen für diesen Beitrag anzulegen. Es wird deiner persönlichen Lesezeichenliste hinzugefügt.

Das sind Escapes, die vor bestimmten Sonderzeichen stehen, um diese zu "entschärfen". Verantwortlich für dieses Verhalten ist die Funktion magic_quotes von PHP, die üblicherweise in der php.ini eingestellt wird. Dabei gilt magic_quotes_gpc für Daten, die per GET, POST oder COOKIE übergeben werden und magic_quotes_runtime für Daten, die aus Datenbanken, Dateien oder anderen externen Quellen kommen. Escaped werden ' (single quote), " (double quote), \ (backslash) und NUL (das Null-Byte).

Um die Escape-Zeichen wieder zu entfernen, benutzt man stripslashes(); manuell hinzufügen kann man sie mittels addslashes().

Die Konfiguration von magic_quotes kann man an verschiedenen Stellen beeinflussen:

php.ini:
magic_quotes_runtime = on|off
magic_quotes_gpc     = on|off

.htaccess, httpd.conf:
php_flag magic_quotes_runtime on|off
php_flag magic_quotes_gpc     on|off

.php
ini_set("magic_quotes_runtime", 0|1);
// magic_quotes_gpc geht hier nicht

In Verbindung mit Sybase-Datenbanken (d.h. bei zusätzlich gesetzter Option magic_quotes_sybase) gibt es eine Besonderheit: Hier werden single quotes nicht mit einem Backslash, sondern mit einem weiteren single quote escaped.

Wieso wird aus " plötzlich \" und wie geht das wieder weg?
http://www.php-faq.de/q-magic-quotes.html
 

dclp FAQ


Login