Post Arrays Überprüfen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
array
ausprobieren
beispiel
code
datum
desaster
element
filter
funktion
gag
inhalt
mache
methode
null
objekt
performance
post
test
verlust
-
Hallo,
also wie kann man POST-Arrays am besten auf schadcode usw. Überprüfen?
also ich meine
<form action... method...> <input type='text' name='user[]' value='1' /> <input type='text' name='user[]' value='2' /> <input type='submit' /> </form>
Nun habe ich vorher immer die Get und Post Daten zu einem Array gemerged (array_merge) und dann quasi jedes element im array überprüft und zurückgegeben...usw.
aber wie mach ich das wenn ich halt son Array im Array habe??
bzw. wie mache ich das elegant und ohne große performance Verluste?? (Meine Arrays sind etwas größer als hier im Beispiel, AVG: 100 Elemente)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hmm weiß jetzt nicht ganz genau worauf du hinaus willst, aber evtl. hilft die ja das um durch das Array zu iterieren
<?php $test = array('user' => array(1, 2)); $objects = new RecursiveIteratorIterator(new RecursiveArrayIterator($test), RecursiveIteratorIterator::SELF_FIRST); foreach($objects as $name => $value){ if (is_array($value)) { echo "$name<br />\n"; } else{ echo "$name = $value<br />\n"; } } ?>
Grüßle -
function validate_array($array) { foreach($array as $name => $value) { if(isArray($array) { validate_array($value); } else { //CODE ZUR ÜBERPRÜFUNG AUF SCHADCODE } } } ///////DEIN PHP-SCRIPT $a = //Dein Array validate_array($a); [...]
rekursivfunktionen sind doch viel eleganter
Beitrag zuletzt geändert: 27.3.2009 9:55:38 von desaster-productions -
Das besondere an meiner Variante ist, dass auch Objekte wie arrays behandelt werden
<?php class GAG { public $hallo = "ich"; public $erstmal = "bins"; public $willkommen = "ja?"; } $obj = new GAG(); $test = array('user' => array(1, array('testobj' => $obj, 'ergobj' => $obj))); $objects = new RecursiveIteratorIterator(new RecursiveArrayIterator($test), RecursiveIteratorIterator::SELF_FIRST); foreach($objects as $name => $value){ if (is_array($value) || is_object($value)) { echo "Key: $name<br />\n"; } else{ if (!is_object($value)) { echo "Key: $name und Wert $value<br />\n"; } } } ?>
Grüßle -
soo, ich habe jetzt mal beide varianten ausprobiert, da die variante von desaster-productions aber etwas performanter ist, hab ich mich für diese entschieden =)
...und ich hatte vorher eine ähnliche funktion, die etwas abgeändert habe :)
(nur das if mit is_array hinzugefügt)
function filter ($array) { foreach($rarray as $key => $value) { if (is_array($array[$key])) { $inhalt[$key] = filter($array[$key]); } else { $value = htmlentities($value); $inhalt[$key] = mysql_real_escape_string($value); } } if (isset($inhalt)) return $inhalt; else return null; }
Beitrag zuletzt geändert: 29.3.2009 10:14:39 von myhead -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage