Hallo Raffi,
Muss ich das noch irgendwie filtern damit er keine \ vor die " macht?
*argh* (das gilt jetzt nicht Dir sondern PHP) Es gibt eine Einstellung in der php.ini, die magic_quotes_gpc heißt. Diese Einstellung bewirkt, dass vor ", \ und ' automatisch \ gestellt wird, damit Variablen sicher in Datenbankabfragen verwendet werden können. Die Tatsache, dass die wenigsten Variablen auch in eine Datenbank kommen, ist anscheinend nicht berücksichtigt worden.
Ich verwende am Anfang meiner Scripte immer folgenden Code, um diese Ärgernis zu umgehen:
// needed for disabling magic quotes gpc which is sometimes activated
function recursive_stripslashes ($value) {
if (is_array ($value)) {
return array_map ('recursive_stripslashes', $value);
} else {
return stripslashes ($value);
}
}
// make sure that we have got magic_quotes_gpc disabled
// (and beg that this script is not subject of a DoS-attac)
if (get_magic_quotes_gpc ()) {
$_GET = recursive_stripslashes ($_GET);
$_POST = recursive_stripslashes ($_POST);
$_COOKIE = recursive_stripslashes ($_COOKIE);
}
// deactivate other magic quote stuff
set_magic_quotes_runtime (0);
Du musst dann halt aufpassen, wenn Du Sachen in einer Datenbankabfrage verwendest, dann musst Du mit mysql_escape_string für MySQL u.ä. für andere Datenbanken diese Escape-Zeichen wieder hinzufügen, sonst hast Du eine Sicherheitslücke.
Viele Grüße,
Christian