In case anyone's interested, here's the function I use in the open source
project LOVD to undo Magic Quoting on all GPC arrays:
function lovd_magicUnquote ($var = '')
{
if (!$var) {
if (count($_GET)) {
lovd_magicUnquote(& $_GET);
}
if (count($_POST)) {
lovd_magicUnquote(& $_POST);
}
if (count($_COOKIE)) {
lovd_magicUnquote(& $_COOKIE);
}
} else {
if (is_array($var)) {
foreach ($var as $key => $val) {
if (is_array($val)) {
lovd_magicUnquote(& $var[$key]);
} else {
$var[$key] = stripslashes($val);
}
}
} else {
$var = stripslashes($var);
}
}
}
// You can then just run on all scripts,
// for compatibility regardless of the settings:
if (get_magic_quotes_gpc()) {
lovd_magicUnquote();
}
Typically, I make sure my values are quoted and unquote them when needed,
but I guess that's a matter of preference.
Ivo
On Thu, 10 Aug 2006 13:08:21 +0800, J R wrote:
> here's an improvement jwith recursion:
>
> function stripMagicQuotes(&$var)
> {
> if (get_magic_quotes_gpc()) {
> if(!is_array($var)) {
> $var = stripslashes($var);
> } else {
> array_walk($var, stripMagicQuotes);
> }
> }
> return $var;
> }
>
> hth,
>
> john
> On 8/10/06, Chris <[EMAIL PROTECTED]> wrote:
>>
>> Chris wrote:
>> > Chris wrote:
>> >> J R wrote:
>> >>> try to use this few lines of code.
>> >>>
>> >>> function stripMagicQuotes(&$var)
>> >>> {
>> >>> if (get_magic_quotes_gpc()) {
>> >>> $var = stripslashes($var);
>> >>> }
>> >>> return $var;
>> >>> }
>> >>>
>> >>> this way you don't really have to worry if magic quotes is on or off.
>> >>
>> >> Then he has to modify all the code to call that function ;)
>> >>
>> >
>> > Hmm actually:
>> >
>> > $_POST = stripMagicQuotes($_POST);
>> >
>> > should do it I guess.. not exactly ideal but would work quickly.
>> >
>>
>> Argh, self-replying (*think before hitting send*) :(
>>
>> Of course that function would need a bit more modification but should be
>> able to get it recursive without too many problems.
>>
>> --
>> Postgresql & php tutorials
>> http://www.designmagick.com/
>>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php