<?
/**
* function for manipulating variables, arrays, etc. in case of magic_quotes enabled or disabled
* test with something like this: my_magic_quotes.php?foo="&bar=\&foobar[foo]='
*
* @param    mixed    var    an array or variable
* @param    enum    either "add" or "strip" for adding or stripping slashes of the given variable
* @return    mixed    the given var with or without slashes
*/
function my_magic_quotes($var$action 'add')
{
    foreach(
$var AS $key => $value) {
    
//~ go through the variable

        
if (is_array($value)) {
        
//~ is an array, so go one level deeper

            
$var[$key] = my_magic_quotes($value);
        } else {
        
//~ is not an array, so add slashes to value
            
if ($action == "add") {
                
$var[$key] = addslashes($value);
            } else {
                
$var[$key] = stripslashes($value);
            }

        } 
//~ end if else is_array

    
//~ end foreach var


    //~ return magic_quoted variable
    
return $var;

//~ end function my_magic_quotes

echo "<br><strong>_GET before:</strong><br>";
echo 
"<pre>";
print_r($_GET);
echo 
"</pre>";


if (!
get_magic_quotes_gpc()) {
//~ magic quotes is turned off, so add the slashes yourself

    
$_GET        my_magic_quotes($_GET);
    
$_POST        my_magic_quotes($_POST);
    
$_COOKIE    my_magic_quotes($_COOKIE);

//~ end if magic_quotes off


echo "<br><strong>_GET after:</strong><br>";
echo 
"<pre>";
print_r($_GET);
echo 
"</pre>";
?>