Re: magic quotes

From: Date: Tue, 17 Jul 2007 15:14:38 +0000
Subject: Re: magic quotes
References: 1 2 3  Groups: php.general 
Request: Send a blank email to php-general+get-259018@lists.php.net to get a copy of this message
Phil Princely wrote:
thanks for all the help. My code was wrong in the first post, I just copied it straight from the web. This one works: if (get_magic_quotes_gpc()) {
    stripslashes_array($_GET);
    stripslashes_array($_POST);
    stripslashes_array($_REQUEST);
    stripslashes_array($_COOKIE);
} set_magic_quotes_runtime(0); set_magic_quotes_runtime() has no effect on magic_quotes_gpc.
function stripslashes_array(&$arr) {
    foreach (array_keys($arr) as $k) {
        $arr[$k] = stripslashes($arr[$k]);
    }
} This function breaks arrays, ignores keys, and takes into account none of PHP's inconsistencies with magic_quotes_gpc.
As I said before, if you need to do it at runtime, use the PHP_Compat code. Here's the two relevant files, if you can't use the PEAR installer: http://cvs.php.net/viewvc.cgi/pear/PHP_Compat/Compat/Environment/_magic_quotes_inputs.php?revision=1.3&view=markup http://cvs.php.net/viewvc.cgi/pear/PHP_Compat/Compat/Environment/magic_quotes_gpc_off.php?revision=1.7&view=markup
I tried searching for setini, but came up with nothing, except this: setIni('magic_quotes_gpc', 'Off', $inifile); // didn't work: unknown function ini_set() is probably what you're thinking of, but magic_quotes_gpc is applied before your script is executed so it will have no effect.
That's why the only option at runtime is to reverse it. Arpad

« previous php.general (#259018) next »