Archiv verlassen und diese Seite im Standarddesign anzeigen : VMS1.2 $_POST array nicht rekursiv
djghost2001
27.01.2008, 21:44
Hay,
da ich gerade meine scripte umstelle ist mir aufgefallen das $_POST Variablen nicht rekursiv übergeben werden.
Beispiel:
ausgabe von print_r($_POST)
so soll es aussehen:
Array
(
[min] => 1000
[max] => 1000000
[win] => Array
(
[1] => 10.00
[2] => 8.00
[3] => 6.00
[4] => 2.50
[5] => 2.50
[6] => 2.50
[7] => 4.00
[8] => 1.80
[9] => 1.80
[10] => 1.80
)
[go] => save
)
so kommt es aber an:
Array
(
[min] => 1000
[max] => 1000000
[win] => Array
[go] => save
)
gruß
djghost2001
djghost2001
27.01.2008, 22:03
hab mich jetzt so beholfen:
Datei extras.lib.php folgendes ersetzt:
// Funktion zum Variablen absichern !
function extra_securevars ($value, $name, $art) {
global $GLOBALS;
// magic_quotes = on?
if (get_magic_quotes_gpc ()) $value = stripslashes ($value);
if ($art == 'GET') $_GET[$name] = $value;
elseif ($art == 'POST') $_POST[$name] = $value;
elseif ($art == 'COOKIE') $_COOKIE[$name] = $value;
elseif ($art == 'SERVER') $_SERVER[$name] = $value;
elseif ($art == 'SESSION') $_SESSION[$name] = $value;
else die ('Fehler in der Variablenabsicherungsfunktion!');
}
durch:
// Funktion zum Variablen absichern !
function extra_securevars($array){
global $GLOBALS;
foreach($array as $key=>$value) {
if(is_array($array[$key])) {
$result[$key] = extra_securevars($array[$key]);
}
else{
if (get_magic_quotes_gpc ()) $result[$key] = stripslashes ($value);
else $result[$key] = $value;
}
}
return $result;
}
Datei extras.init.php folgendes ersetzt:
array_walk($_GET, 'extra_securevars', 'GET');
array_walk($_POST, 'extra_securevars', 'POST');
array_walk($_SERVER, 'extra_securevars', 'SERVER');
if (count ($_SESSION) > 0) array_walk($_SESSION, 'extra_securevars', 'SESSION');
durch:
$_GET = extra_securevars($_GET);
$_POST = extra_securevars($_POST);
$_SERVER = extra_securevars($_SERVER);
if (count ($_SESSION) > 0) $_SESSION = extra_securevars($_SESSION);
bitte aber trotzdem um bugfix, von mir aus auch mit meiner lösung ;)
Resultat (secure) ist das selbe wie vorher, nur das die arrays auch rekursiv durchgegangen werden.
gruß
djghost2001
Vielen Dank, werde deinen bugfix nehmen da dies imho die beste Lösung ist. Werde es die Tage ins VMS einbauen.
djghost2001
28.01.2008, 22:31
wie gesagt kanst du gerne machen.
hätte ich bei meinem keno die variablen nicht rekursiv über mehrere ebenen übergeben wäre es mir auch nicht aufgefallen ;)
Powered by vBulletin® Version 4.2.5 Copyright ©2024 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.