Accueil
Forums
Turoriaux
Inscription
Connexion
Fil RSS
Bienvenue invité !
Samedi 22 Novembre 2008
Vous êtes ici: Crea-paradise.com > Tutoriaux > Conception web > PHP > Vérifier qu'un champ n'est pas vide

Vérifier qu'un champ n'est pas vide



Informations sur le tutorial
Image du tutorial Auteur : lbeetls01 Commentaires : 4
Note : Note: 3/5 Vu : 5168
Date : 31/05/2007 à 18h22 Actions : Commenter et noter ce tutorial
Dernière modification : 31/05/2007 à 18h22


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 : Note: 4/5
Avatar de Sparklegamer


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
Avatar de lbeetls01


Groupe : Admins


Oui... mais, avec ta méthode, si on entre " " il le considère comme plein .


> Posté le : 19/07/2007 à 17h33 | Note : Note: 2/5
Avatar de Vegeta47


Groupe : Membres


Salut,
Code PHP:

if(!empty(trim($_POST['y'])) )
{
}
else
{
}

Tout simplement 
> Posté le : 03/01/2008 à 09h10 | Note : Aucune
Aucun avatar


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

=)


1