Hallo,
da ich nicht immer von Hand prüfen möchte, ob die POST Daten automatisch gequotet werden (Um diese danach in eine Datenbank zu schreiben), habe ich folgende Funktion geschrieben.
Aufgerufen wird sie mit
Meine Frage ist jetzt.
Ist sowas überhaupt sinnvoll bzw. die angehensweise korrekt?
Sollte man, auch wenn magic_quotes_gpc() auf off steht, trotzdem stripslashes benutzen?
da ich nicht immer von Hand prüfen möchte, ob die POST Daten automatisch gequotet werden (Um diese danach in eine Datenbank zu schreiben), habe ich folgende Funktion geschrieben.
PHP:
function slashes($array,$do,$type='gpc') {
switch($type) {
case 'gpc' :
if(($do == 'add' && get_magic_quotes_gpc()) || ($do == 'del' && !get_magic_quotes_gpc()) )
return $array;
break;
case 'runtime' :
if(($do == 'add' && get_magic_quotes_runtime()) || ($do == 'del' && !get_magic_quotes_runtime()))
return $array;
break;
default:
return $array;
break;
}
if(is_array($array)) {
foreach($array as $item => $value) {
if(is_array($value)) {
$array[$item] = slashes($value,$do,$type);
}else {
if($do == 'del') {
$value = stripslashes($value);
}elseif($do == 'add') {
$value = stripslashes($value);
if(!is_numeric($value) && $value !== NULL) {
$value = mysql_real_escape_string($value);
}
}
$array[$item] = $value;
}
}
}elseif($do=='del') {
$array = stripslashes($array);
}elseif($do=='add') {
$array = stripslashes($array);
if(!is_numeric($array) && $array !== NULL) {
$array = mysql_real_escape_string($array);
}
}
return $array;
}
Aufgerufen wird sie mit
PHP:
$stripped = slashes($_POST,'add');
Meine Frage ist jetzt.
Ist sowas überhaupt sinnvoll bzw. die angehensweise korrekt?
Sollte man, auch wenn magic_quotes_gpc() auf off steht, trotzdem stripslashes benutzen?
Zuletzt bearbeitet: