kostenloser Webspace werbefrei: lima-city


Post Arrays Überprüfen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    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)
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. 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
  4. desaster-productions

    desaster-productions hat kostenlosen Webspace.

    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 :wink:

    Beitrag zuletzt geändert: 27.3.2009 9:55:38 von desaster-productions
  5. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    thx,
    werd jetzt mal beide MEthoden ausprobieren =)
  6. 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
  7. Autor dieses Themas

    myhead

    myhead hat kostenlosen Webspace.

    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
  8. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!