Hey zusammen!
Ich habe nun seit doch längerer Zeit wieder mal ein Problem und da ich eben solange relativ wenig mit PHP gemacht habe, hoffe ich, dass ihr mir helfen könnt!
Das Problem ist, dass sich nach der Texteingabe in einem Formular bei bestimmte enthaltenen Zeichen (z.B. ° oder `) an egal welcher Stelle und egal in welcher Anzahl mein Code überschlägt und im Endeffekt in der betreffenden $_POST nichts mehr steht.
Ich habe jetzt angefangen zu suchen und so wie es scheint, ist die htmlspecialchars-Funktion der Verursacher, zumindest funktioniert alles reibungslos, wenn ich diese auskommentiere.
Aufgetreten ist das Ganze, als mein Hoster von PHP 5.2 auf 5.4 umgestellt hat.
Den Codeausschnitt hänge ich an
Spoiler anzeigen
Vielen Dank im Voraus für eure Mühen!
Lu
PS: Ich bin mir nicht sicher, aber eventuell fallen Umlaute auch durch
Ich habe nun seit doch längerer Zeit wieder mal ein Problem und da ich eben solange relativ wenig mit PHP gemacht habe, hoffe ich, dass ihr mir helfen könnt!
Das Problem ist, dass sich nach der Texteingabe in einem Formular bei bestimmte enthaltenen Zeichen (z.B. ° oder `) an egal welcher Stelle und egal in welcher Anzahl mein Code überschlägt und im Endeffekt in der betreffenden $_POST nichts mehr steht.
Ich habe jetzt angefangen zu suchen und so wie es scheint, ist die htmlspecialchars-Funktion der Verursacher, zumindest funktioniert alles reibungslos, wenn ich diese auskommentiere.
Aufgetreten ist das Ganze, als mein Hoster von PHP 5.2 auf 5.4 umgestellt hat.
Den Codeausschnitt hänge ich an
function secureSuperGlobalPOST(&$value, $key) {
if(get_magic_quotes_gpc()) $_GET[$key] = stripslashes($_POST[$key]);
$_POST[$key] = htmlspecialchars($_POST[$key], ENT_QUOTES);
$_POST[$key] = str_ireplace("script", "blocked", $_POST[$key]);
$_POST[$key] = mysql_real_escape_string($_POST[$key]);
return $_POST[$key];
}
if(get_magic_quotes_gpc()) $_GET[$key] = stripslashes($_POST[$key]);
$_POST[$key] = htmlspecialchars($_POST[$key], ENT_QUOTES);
$_POST[$key] = str_ireplace("script", "blocked", $_POST[$key]);
$_POST[$key] = mysql_real_escape_string($_POST[$key]);
return $_POST[$key];
}
Vielen Dank im Voraus für eure Mühen!
Lu
PS: Ich bin mir nicht sicher, aber eventuell fallen Umlaute auch durch
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von venum-lk ()