Vérifier qu'un champ n'est pas vide
Informations sur le tutorial
Dans ce court tutorial je vais vous expliquer comment vérifier en PHP si un champ à bien été rempli.
Nous imaginerons que vous avez envoyé un formulaire avec la méthode POST donc les variables seront de type
$_POST['nom_du_champ'].
Vérifier qu'un champ n'est pas vide
Tout d'abord nous allons vérifier que le champ ne sois pas vide. Pour le faire nous utiliserons la fonction
empty().
Code PHP:if(!empty($_POST['nom_du_champ'])){
echo 'Le champ est rempli !';
}else{
echo 'Le champ est vide.';
} Information
empty($variable) renverra true si la valeur est vide et false si elle ne l'est pas.
En ajoutant un "!" devant la fonction nous l'inversons ! C'est à dire que la fonction !empty($variable) renverra true si la variable est non vide et false si elle l'est.
Si vous ne comprenez pas la condition reportez vous au tutorial
Conditions avec des valeurs booléennes.
Vérifier qu'un champ contient autre chose que des espaces? C'est possible !
Maintenant nous allons améliorer le code précédent en y vérifiant également que le champ ne contient pas que des espaces.
Maintenant c'est à vous de jouer !
Un petit indice: nous allons utiliser des
Regexs.
Correction :
Caché (cliquez pour afficher)Code PHP:if(!empty($_POST['nom_du_champ']) AND !preg_match("#^( *)$#", $_POST['nom_du_champ'])){
echo 'Le champ est rempli !';
}else{
echo 'Le champ est vide.';
} Alors que signifie tout ce charabia?
On commence par mettre le "
!" pour inverser la fonction c'est à dire, ici, vérifier que nous n'avons pas ce qu'il y a dans la Regex. Ensuite la fonction
preg_match() qui permet d'effectuer des recherches dans des chaînes de caractères. Le
# sert à délimiter votre Regex.
Quant au
^ il indique le début de votre chaîne et le $ à la fin en indique la fin

. Ainsi si votre regex est
#^Crea-paradise$#, la fonction
preg_match("#^Crea-paradise$#", 'Crea-paradise') renverra
true tandis que la fonction
preg_match("#^Crea-paradise$#", 'Vive Crea-paradise !') renverra
false. Cette regex signifierais que l'on ne voudrais que
Crea-paradise dans la chaîne.
Revenons à nos moutons

. Donc dans notre Regex nous avons les deux (^ et $) ce qui signifie que nous ne voulons que des espaces. Si il y a autre chose que des espaces c'est bon ! La chaîne est remplie

.
Les parenthèses servent à regrouper des caractères pour leur appliquer des
propriétés. Ici nous signalons avec le
* que le caractère dans la parenthèse peut être répété autant de fois. Donc même si le visiteur entre " " dans le champ il sera considéré comme vide.
Astuce
Vous pouvez aussi ajouter des options à votre regex. Elles sont à placer après le # de fermeture. Par exemple, le
i fait que la Regex n'est plus sensible à la case.
Sa veux dire quoi ça?
Sa veux dire que les Regex font la différence entre majuscules et minuscules, donc si votre regex est
#Crea-paradise# et votre chaîne
crea-paradise la fonction renvera
false...

Au contraire, si votre regex est
#Crea-paradise#i et votre chaîne
crea-paradise la fonction renverra
true !
Et voilà !
Ce tutorial est terminé. Si vous souhaitez que j'éclaircisse quelques points n'hésitez pas à le demander en commentaire

.
4 commentaires
|
> Posté le : 04/07/2007 à 17h35 | Note :  |

Groupe : Membres
|
On peut également vérifier si un champ est vide ou non de cette manière :
Code PHP:<?php if ($_POST['variable'] == ''){ echo 'c est vide ...'; } ?>
Death to the Eathens |
|
> Posté le : 17/07/2007 à 14h27 | Note : Aucune |

Groupe : Admins
|
Oui... mais, avec ta méthode, si on entre " " il le considère comme plein . |
|
> Posté le : 19/07/2007 à 17h33 | Note :  |

Groupe : Membres
|
Salut,
Tout simplement |
|
> Posté le : 03/01/2008 à 09h10 | Note : Aucune |

Groupe : Membres
|
J'aurais dit pareil sans vérifier !
<?php $v = ' '; echo empty(trim($v)); ?>
PHP Fatal error: Can't use function return value in write context in /bla/bla/bla/index.php on line 3
=) |