summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Gohr <andi@splitbrain.org>2007-08-19 23:19:52 +0200
committerAndreas Gohr <andi@splitbrain.org>2007-08-19 23:19:52 +0200
commit81c54349cd23c3626c97fd4185d503365097638d (patch)
tree692a1c59026ff5084525ff6a0f44bb831f8828d7
parent1a9ae8e52e2e72a094e36efc5cb586c4858ba9d1 (diff)
downloadrpg-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.php19
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]);
+ }
}
}