filter_input(), array geeft problemen
Zoals je in de tutorial kunt zien, kun je met filter_input() heel simpel GET en POST waardes valideren. Nu werk ik regelmatig met array's in m'n html en dat geeft problemen:
Dit werkt (natuurlijk) niet, andere varianten die ik reeds heb geprobeerd, werken evenmin. Het punt is dat het een array is en geen string, wat deze functie nodig heeft. Maar om nu eerst de array om te zetten naar een string, dat is niet handig, niemand die kan garanderen dat de array daadwerkelijk bestaat, dat moet dan eerst weer ergens worden gecontroleerd (wil ik eigenlijk pas later doen).
Of zou alleen het alternatief werken?
Code (php)
1
2
3
4
2
3
4
<?php
$sEmail = filter_input(INPUT_POST, 'afzender']['email'], FILTER_VALIDATE_EMAIL);
// en dan verder verwerken
?>
$sEmail = filter_input(INPUT_POST, 'afzender']['email'], FILTER_VALIDATE_EMAIL);
// en dan verder verwerken
?>
Dit werkt (natuurlijk) niet, andere varianten die ik reeds heb geprobeerd, werken evenmin. Het punt is dat het een array is en geen string, wat deze functie nodig heeft. Maar om nu eerst de array om te zetten naar een string, dat is niet handig, niemand die kan garanderen dat de array daadwerkelijk bestaat, dat moet dan eerst weer ergens worden gecontroleerd (wil ik eigenlijk pas later doen).
Of zou alleen het alternatief werken?
Gesponsorde koppelingen:
is dit dan niet een optie? (heb er zelf nog echt mee gewerkt, wel wat over gelezen)
http://nl2.php.net/manual/en/function.filter-input-array.php
edit: zie example 1, daar werken ze ook met een array
http://nl2.php.net/manual/en/function.filter-input-array.php
edit: zie example 1, daar werken ze ook met een array
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
Het heeft mij waarschijnlijk wel op de goede weg gezet, ik denk een oplossing te hebben. De html-array moet anders worden opgebouwd, per soort data/validatie een aparte array:
Nu kun je in 1 keer de array email gaan valideren met het email-filter en de array naam met een string-filter.
Ik denk dat dit wel gaat lukken. Bedankt voor de inspiratie!
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<form method="post" action="">
<input type="text" name="email[afzender]" size="30" />
<input type="text" name="naam[afzender]" size="30" /><br />
<input type="text" name="email[ontvanger]" size="30" />
<input type="text" name="naam[ontvanger]" size="30" /><br />
<br />
<button type="submit">Test</button>
</form>
<input type="text" name="email[afzender]" size="30" />
<input type="text" name="naam[afzender]" size="30" /><br />
<input type="text" name="email[ontvanger]" size="30" />
<input type="text" name="naam[ontvanger]" size="30" /><br />
<br />
<button type="submit">Test</button>
</form>
Nu kun je in 1 keer de array email gaan valideren met het email-filter en de array naam met een string-filter.
Ik denk dat dit wel gaat lukken. Bedankt voor de inspiratie!



