phpbar.de logo

Mailinglisten-Archive

[php] magic_quotes_gpc - bug?

[php] magic_quotes_gpc - bug?

Lutz Zetzsche Lutz.Zetzsche at sea-rescue.de
Don Apr 8 12:46:12 CEST 2004


Hi Christoph,


Zitat von Christoph Schönian:

> Eben fand ich beunruhigendes auf sonst lauffähigem System.
> (Debian/Php-4.3.4)

Du meinst ein von Dir unerwartetes Systemverhalten... ;-)


> Usereingaben jage ich durch eine Funktion für nl2br addslashes und
> strip_tags.
> Das klappt(e) auch sonst.......
> Jetzt aber habe ich in einem Textfeld <'> statt funtionierenden <"> und
> bekomme
> einen Insert-Error.
>
> Php.ini - Magic_quotes_gpc stehen auf on.
> Die dafür notwendige Zeile aus der Funktion:
> $_POST[$key] = ini_get('magic_quotes_gpc') ? nl2br(strip_tags($val)) :
> nl2br(addslashes(strip_tags($val)));
>
> Scheinbar wird das Hochkomma nicht geslashed. Warum? War das etwa schon
> immer so?
> In den bugs für 4.3.4 ist nix zu finden. Kennt das jemand?

das meiste, was man nicht einordnen kann, ist trotzallem kein Bug. :-)

Hast Du Dir den mit addslashes() behandelten String denn mal ausgeben lassen?
addslashes() stellt sowohl den einfachen als auch den doppelten
Anfuehrungsstrichen einen Backslash voraus. Das sollte es auch bei Dir tun. :-)

Dein Problem scheint vielmehr zu sein, dass ein Datenbank-Insert fehlschlaegt.
D.h. Du must einmal gucken, wie Deine Datenbank denn syntaktische Zeichen
maskiert haben will, wenn sie innerhalb eines Strings vorkommen. Wenn die
Datenbank ein ' als '' maskiert haben will, bringt die Maskierung \' natuerlich
nichts. :-)

Wenn Du eine MySQL-Datenbank hast, solltest Du mit folgender Funktion maskieren:

http://de3.php.net/manual/de/function.mysql-escape-string.php


Viele Gruesse

Lutz

php::bar PHP Wiki   -   Listenarchive