diff options
author | Andreas Gohr <andi@splitbrain.org> | 2007-08-19 23:19:52 +0200 |
---|---|---|
committer | Andreas Gohr <andi@splitbrain.org> | 2007-08-19 23:19:52 +0200 |
commit | 81c54349cd23c3626c97fd4185d503365097638d (patch) | |
tree | 692a1c59026ff5084525ff6a0f44bb831f8828d7 | |
parent | 1a9ae8e52e2e72a094e36efc5cb586c4858ba9d1 (diff) | |
download | rpg-81c54349cd23c3626c97fd4185d503365097638d.tar.gz rpg-81c54349cd23c3626c97fd4185d503365097638d.tar.bz2 |
fix for magic quote fixing inside array keys
darcs-hash:20070819211952-7ad00-a1a321178ef3c5a85b2e422a01eda8066eb10588.gz
-rw-r--r-- | inc/init.php | 19 |
1 files 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]); + } } } |