Versio

filter_input(), array geeft problemen

Overzicht Reageren

Frank -

Frank -

12/08/2008 10:39:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$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?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?php
$sEmail
= filter_var(@$_POST['afzender']['email'], FILTER_VALIDATE_EMAIL);
// en dan verder verwerken
?>
 
PHP hulp

PHP hulp

24/05/2012 15:45:10
Gesponsorde koppelingen:
 
Terence Hersbach

Terence Hersbach

12/08/2008 10:55:00
Quote Anchor link
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
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach
 
Frank -

Frank -

12/08/2008 12:03:00
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>

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!
 



Overzicht Reageren

Get Adobe Flash player