Just a tip.
Note how to setup default filter for filter_var_array
When I tried to use filter_var_array and didn't mentioned all array indexes in definition it filtered it with some filter and broke values so using this tip corrected everything
<?php
$def = array_map(create_function('', 'return array("filter"=>FILTER_UNSAFE_RAW);'), $input);
?>
filter_input
(PHP 5 >= 5.2.0)
filter_input — Récupère une variable externe et la filtre
Description
Liste de paramètres
- type
-
Une constante parmi INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV, INPUT_SESSION (actuellement non implémenté) ou INPUT_REQUEST (actuellement non implémenté).
- variable_name
-
Nom de la variable à récupérer.
- filter
-
Filtre à appliquer. Par défaut, vaut FILTER_DEFAULT.
- options
-
Tableau associatif d'options ou des drapeaux. Si le filtre accepte les options, les drapeaux peuvent être fournis dans le champ "flags" du tableau.
Valeurs de retour
Valeur de la variable demandée en cas de succès, FALSE si le filtre échoue, ou NULL si la variable variable_name n'est pas définie. Si le drapeau FILTER_NULL_ON_FAILURE est utilisé, la fonction retournera FALSE si la variable n'est pas définie et NULL si le filtre échoue.
Exemples
Exemple #1 Exemple avec filter_input()
<?php
$search_html = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_SPECIAL_CHARS);
$search_url = filter_input(INPUT_GET, 'search', FILTER_SANITIZE_ENCODED);
echo "Vous avez recherché $search_html.\n";
echo "<a href='?search=$search_url'>Nouvelle recherche.</a>";
?>
L'exemple ci-dessus va afficher quelque chose de similaire à :
Vous avez recherché Me & son. <a href='?search=Me%20%26%20son'>Nouvelle recherche.</a>
Voir aussi
- filter_var() - Filtre une variable avec un filtre spécifique
- filter_input_array() - Récupère plusieurs valeurs externes et les filtrent
- filter_var_array() - Récupère plusieurs variables et les filtrent
filter_input
03-Mar-2009 09:13
02-Jan-2008 07:30
Despite the documentation for 'type', you can specify multiple types by doing:
$test = filter_input(INPUT_GET | INPUT_POST, 'test');
This was tested in 5.2.3.
When both are set it appears to return the value defined first by variables_order (php.ini).
This trick does not seem to work in filter_input_array though. Neither function supports INPUT_REQUEST at the moment.
10-Dec-2007 08:49
If you want to use the callback filter with filter_input, you need to do something like:
$args = array ('options' => 'mycallbackfunction');
$foobar = filter_input(INPUT_POST,'postedvariable',FILTER_CALLBACK,$args);
23-Aug-2007 09:10
FastCGI seems to cause strange side-effects with unexpected null values when using INPUT_SERVER and INPUT_ENV with this function. You can use this code to see if it affects your server:
<?php
var_dump($_SERVER);
foreach ( array_keys($_SERVER) as $b ) {
var_dump($b, filter_input(INPUT_SERVER, $b));
}
echo '<hr>';
var_dump($_ENV);
foreach ( array_keys($_ENV) as $b ) {
var_dump($b, filter_input(INPUT_ENV, $b));
}
?>
If you want to be on the safe side, using the superglobal $_SERVER and $_ENV variables will always work. You can still use the filter_* functions for Get/Post/Cookie without a problem, which is the important part!
