From 81c54349cd23c3626c97fd4185d503365097638d Mon Sep 17 00:00:00 2001 From: Andreas Gohr Date: Sun, 19 Aug 2007 23:19:52 +0200 Subject: fix for magic quote fixing inside array keys darcs-hash:20070819211952-7ad00-a1a321178ef3c5a85b2e422a01eda8066eb10588.gz --- inc/init.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/inc/init.php b/inc/init.php index 286850e94..416b117eb 100644 --- a/inc/init.php +++ b/inc/init.php @@ -260,11 +260,20 @@ function init_creationmodes(){ */ function remove_magic_quotes(&$array) { foreach (array_keys($array) as $key) { - if (is_array($array[$key])) { - remove_magic_quotes($array[$key]); - }else { - $array[$key] = stripslashes($array[$key]); - } + // handle magic quotes in keynames (breaks order) + $sk = stripslashes($key); + if($sk != $key){ + $array[$sk] = $array[$key]; + unset($array[$key]); + $key = $sk; + } + + // do recursion if needed + if (is_array($array[$key])) { + remove_magic_quotes($array[$key]); + }else { + $array[$key] = stripslashes($array[$key]); + } } } -- cgit v1.2.3