array_walk_recursive

Door Jan Koehoorn, 21 jaar geleden, 4.710x bekeken

Vooral voor beginnende PHP-ers is het belangrijk om je te verdiepen in veiligheid in je scripts. Wanneer je met formulieren werkt en informatie in een database wilt stoppen moet je de invoer van de gebruiker controleren.

Nu kan de $_POST array behoorlijk lang worden, en zelfs multidimensionaal zijn. Als je bijvoorbeeld een aantal checkboxen in je formulier hebt met een arraynaam 'hobbies', dan staat in $_POST['hobbies'] ook weer een array.

Sinds PHP 5 bestaat er een functie, array_walk_recursive, die een hele array kan doorlopen en op elk arrayelement dezelfde bewerking kan doen. Dit werkt ook met multidimensionale arrays (vandaar de naam recursive)

array_walk_recursive krijgt twee argumenten mee: de array, en een string met daarin de naam van de functie die op de elementen losgelaten wordt. In die functie kun je al je standaardbeveiliging zetten. Zie verder het voorbeeld.

Ik weet dat veel hosts nog geen PHP 5 draaien, maar hopelijk duurt dat niet lang meer. En anders installeer je gewoon WAMP, dan kun je lokaal alvast zien hoe het werkt.

Happy PHP-ing!

Jan Koehoorn

Voorbeeld: http://phphulp.ikhoefgeen.nl/array_walk_recursive.php

Gesponsorde koppelingen

PHP script bestanden

  1. arraywalkrecursive

 

Er zijn 13 reacties op 'Arraywalkrecursive'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
PHP Newbie
PHP Newbie
21 jaar geleden
 
0 +1 -0 -1
is dit niet meer een uitleg van een functie dan een script?

Verder is het natuurlijk weer heel netjes, zoals we van je kennen ;-)
- -
- -
21 jaar geleden
 
0 +1 -0 -1
Netjes (zoals altijd)
Hipska BE
Hipska BE
21 jaar geleden
 
0 +1 -0 -1
een voorbeeldje? dan zie je ook al eens wat je als uitkomst van $_POST krijgt ;-)
Jan Koehoorn
Jan Koehoorn
21 jaar geleden
 
0 +1 -0 -1
@ allemaal: thanks! Een voorbeeldje is moeilijk, want mijn host draait geen PHP 5. Misschien kan iemand hem ergens neerzetten voor me? PM me de link maar.
Joren de Wit
Joren de Wit
21 jaar geleden
 
0 +1 -0 -1
Netjes hoor. Ga ik zeker gebruik zodra mijn host php5 gaat draaien.
Legolas
Legolas
21 jaar geleden
 
0 +1 -0 -1
Voor de mensen zonder PHP 5: PHP_Compat
(en dan deze functie: php_compat_array_walk_recursive())
- -
- -
21 jaar geleden
 
0 +1 -0 -1
sorry, heb geen php5 (had ik wel raargenoeg...)
Winston Smith
Winston Smith
21 jaar geleden
 
0 +1 -0 -1
Functie kende ik nog niet, maar komt zeker wel van pas om bijv. htmlentities() overheen te gooien! Bedankt!
Jan Koehoorn
Jan Koehoorn
21 jaar geleden
 
0 +1 -0 -1
Intussen staat er een voorbeeld op Jelmer's site.
Lissy Pixel
Lissy Pixel
21 jaar geleden
 
0 +1 -0 -1
Zoals we van je gewend zijn Jan heel helder en duidelijk !!!
Wederom Bedankt voor het delen van je kennis en uitleg.
B a s
B a s
21 jaar geleden
 
0 +1 -0 -1
Ziet er netjes uit Jan, weer wat geleerd :).

Toen ik het voorbeeld zag deed het me denken aan de functie var_dump() maar toen ik even las zag ik dat je een functie over elke waarde in de array kan halen. Lijkt me erg handig en bespaart weer werk!
Zero Dead
Zero Dead
21 jaar geleden
 
0 +1 -0 -1
Gebruik dit ook op GET-dingen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
    if($_SERVER['REQUEST_METHOD'] == 'GET') {
        array_walk_recursive($_GET, 'safe');
    }
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Citroen Anoniem Graag
Citroen Anoniem Graag
21 jaar geleden
 
0 +1 -0 -1
Als ik </div><h1><b>dsjkla</b></h1> intyp gaat het niet goed, misschien is het handig om ook even htmlentities() er overheen te gooien.

Verder ziet het er prima uit!

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. arraywalkrecursive

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.