Notice: session_start() [function.session-start]: ps_files_cleanup_dir: opendir(/var/lib/php5) failed: Permission denied (13) in /home/expreg/mvc/main.php on line 43
Isset ou empty ? sur ExpReg

Général

Les PCRE

Les POSIX

Pratique

Linux

Spécial php

Les billets de fred

Isset ou empty ?

La fonction isset() permet de déterminer si une variable est bien définie, rôle qu'elle rempli à merveille.
Malheureusement, isset() n'est pas capable de déterminer si la variable définie contient une quelconque valeur.
Trop souvent, je vois dans les scripts de formulaire une interminable suite de isset($_POST['var'])) combinée à $_POST['var']!=NULL et autre combinaison les plus farfelue les unes que les autres.

Il y a pourtant un moyen simple pour tester vos formulaires :

!EMPTY

Tout le monde sait que le ! devant la fonction inverse son fonctionnement.
Voyons l'effet de cette syntaxe : if(empty($var))
Quand on fait ce genre de test, on demande simplement via empty() de vérifier si la variable est :
- vide, nulle ou non définie (hé oui, isset() en somme)

Donc pour bien tester les variables issues d'un formulaire, la meilleure solution c'est :

<?php
if(!empty($_POST))
?>

Cette formulation permet de vérifier que le formulaire a bien été soumis.
On va donc maintenant faire un test sur notre variable de formulaire en utilisant !empty($_POST['le_champ_a_tester'])) afin de savoir si notre champ contient bien un nom.

<?php
if(!empty($_POST['nom']))
{
echo 'le champ est bien rempli';
}
else
{
echo 'Pas bon :
<ul>
<li>Le champ n\'existe pas</li>
<li>Le champ est vide</li>
<li>Le champ vaut zéro</li>
</ul> ';
}
?>
ADAM Benjamin 2008 | Admin