PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : anfuehrungszeichen in _POST von vornherein maskiert



ohcibi
28-02-2005, 17:29
hi...

in meinem projekt begegnete ich folgendem phaenomaen:

in $_POST['message'] (herkunft: <textarea>) werden anfuerhungszeichen mit \ demaskiert und zwar passiert das selbst wenn ich ein echo $_POST['message']; in die allererste zeile meines projektes schreibe, also bevor irgendein code ausgefuehrt wird..... das gehoert doch aber nich zum standard, dass anfuerhungszeichen maskiert werden oder???

hab php 5.0.3 zu laufen, passiert aber bei strato mit 4.1.2 genauso....

nEox
28-02-2005, 20:04
hört sich schwer nach "magic quotes" an.
http://www.php-homepage.de/manual/security.magicquotes.php#security.magicquotes.what

mach mal schnell ein:



if(get_magic_quotes_gpc())
print "ja, daran liegts";
else
print "nein, war doch was anderes";


Falls "ja" zurückgegeben wird, musst du per stripslashes() die Teile wieder entfernen.

Grüße

nEox

ohcibi
28-02-2005, 20:25
tatsache, die sind auf on gestellt, naja inzwischen kann ich mir auch rekonstruieren, warum mir das bisher noch nie aufgefallen is.... ausgerechnet auf dem server wo ich dieses problem erstmals geloest hab, dass meine mails slashes vor den anfuerhungszeichen haben (ueberall sonst isses ja erwuenscht) sind die dinger auf off...

escaped mysql_escape_string() bereits escapete anfuerhungszeichen nochmals oder belaesst er es bei einmal?

Pingu
01-03-2005, 06:34
escaped mysql_escape_string() bereits escapete anfuerhungszeichen nochmals oder belaesst er es bei einmal?
Es weiß ja nicht ob der Backslash dahin gehört oder durch ein vorheriges escapen entstanden ist. Es kennt ja keine Historie.
Also wird es den Strin komplett bearbeiten.

Pingu

Gaert
01-03-2005, 07:56
Hallo,

Um dieses Problem mit abwechselnd eingeschalteten magic quotes in den Griff zu bekommen prüfe ich am Anfang aller meiner Skripte ob magic quotes an sind - wenn ja jage ich mit stripslashes() über alle $_POST, $_GET und $_COOKIE Variablen.
So kann ich immer davon ausgehen, dass meine input Daten unescaped sind.

Gruß,

Gaert

sixfriends
01-03-2005, 13:30
php.ini mit texteditor öffnen, suchen nach:
"magic_quotes_gpc" von 'On' auf 'Off' stellen, fertig.

Alternativ, falls du keinen Zugriff auf die php.ini hast oder das ganze nicht global haben willst:
Erstelle oder erweitere vorhandene Datei ".htaccess" im Verzeichnis des scripts und schreibe:
"php_flag magic_quotes_gpc Off"
ohne die Anführungszeichen...

sixfriends

Gaert
01-03-2005, 14:03
Alternativ, falls du keinen Zugriff auf die php.ini hast oder das ganze nicht global haben willst:
Erstelle oder erweitere vorhandene Datei ".htaccess" im Verzeichnis des scripts und schreibe:
"php_flag magic_quotes_gpc Off"
ohne die Anführungszeichen...

sixfriends

Funktioniert natürlich nur mit einem Apache...