Nombreuses
sont les possibilités pour l'utilisateur d'un formulaire Web
de se tromper, voire de sciemment insérer des données erronées
dans les champs qui lui sont proposés.
Parmi les problèmes qui peuvent régulièrement surgir lors
de la validation d'un formulaire se trouve celui du type de
la valeur : les champs étant passés sous forme de chaîne de
caractères, il devient difficile de savoir si l'utilisateur
a bien entré un entier. Pour ne rien gâcher, PHP est un langage à faible typage
Celui-ci dispose donc d'une série de fonctions permettant
de connaître assez précisément le type de la variable testée,
et d'agir en conséquence.
PHP
: fonctions de test de type
|
Fonction
|
Description
|
is_numeric()
is_int()
is_integer()
is_float()
is_real()
is_double ()
is_long()
is_scalar()
|
Ces
fonctions testent si la valeur est numérique,
et affinent ce test : entier, virgule flottante, réel,
double, long ou scalaire (type spécial pouvant
contenir les type int,
float, string
ou bool).
|
is_bool()
|
Teste
si la valeur est booléenne (true
ou false, et non 0 ou 1)
|
is_string()
|
Teste
si la valeur est une chaîne ("abcdfsdf4561.1f16s")
|
is_object()
|
Teste
si variable est de type Objet (class
MonObjet)
|
is_array()
|
Teste
s'il s'agit d'un tableau (array())
|
is_resource()
|
Teste
s'il s'agit d'une ressource PHP (liaison MySQL par exemple)
|
is_null()
|
Teste
si la valeur est null (null)
|
is_callable()
|
Indique
si la variable peut-être appellée comme
fonction
|
|
Forum |
|
Réagissez
dans les forums
de JDN Développeurs
|
Dans tous les cas, avant de lancer ces tests, il sera utile
de vérifier si les variables observées sont
effectivement affectées, via isset(),
avant de tester le type lui-même :
if (isset($_REQUEST['numeroSecu']) &&
is_int($_REQUEST[numeroSecu'']) {
faireUnTruc();
else {
faireAutreChose();
}
|