[PHP] Magic Quotes und register_globals "entfernen"

Hab keine Frage, nur wieder mal ein Snippet falls das mal jemand braucht.

Script in Datei speichern und überall einbinden, wo man es brauch kann.
Entfernt die die Magic Quotes, falls aktiviert, in den globalen Variablen und “löscht” alle variablen die in $_REQUEST als key enthalten sind.
[size=90]Zweiteres sollte unbedingt so früh wie möglich in einem Script eingesetzt werden, da es sonst unter umständen andere Variablen löscht. die zufällig den gleichen namen haben :slight_smile:[/size]
Das ist dann von vorteil, wenn man ein Script bastelt welches auf einem Webspace eingesetzt werden soll, in dem register_globals aktiviert ist.

[code]<?php

function kill_magic_quotes_r(&$mixed, $stripindex = true){
if(is_array($mixed)){
foreach($mixed as $index => $val){
if($stripindex && (stripslashes($index) != $index)){
$mixed[stripslashes($index)] = $mixed[$index];
unset($mixed[$index]);
$index = stripslashes($index);
}
if(is_array($val)){
kill_magic_quotes_r($mixed[$index]);
}else{
$mixed[$index] = stripslashes($val);
}
}
}else{
$mixed = stripslashes($mixed);
}
}

//stripslashes on global vars
if(function_exists(“get_magic_quotes_gpc”)){
if(get_magic_quotes_gpc()){
kill_magic_quotes_r($_GET);
kill_magic_quotes_r($_POST);
kill_magic_quotes_r($_COOKIE);
kill_magic_quotes_r($_REQUEST);
}
}

//unset register_globals variables.
foreach($_REQUEST as $key => $val){
if(isset($$key)){
unset($$key);
}
}

?>[/code]

mfg Balmung

hmm…eig. halte ich recht wenig davon, da man register_globals (auf bplaced natürlich deaktiviert) und magic_quotes standardmäßig bequem über htaccess deaktivieren kann