Vérif de remplissage complet formulaire php

Résolu/Fermé
vdelaby - 29 août 2009 à 16:27
 vdelaby - 30 août 2009 à 12:31
Bonjour,
j'ai un formulaire html ou l'utilisateur saisit 3 champs: login_util, pass_util et entreprise_util.
Mon formulaire renvoie vers un fichier php de traitement.
Je souhaite dans ce fichier php récupérer les valeurs du formulaire, et tester si tout le formulaire a bien été rempli.
voici le code php :

<?php

// Recuperation des entrées du formulaire
$login=$_POST['login_util'];
$pass=$_POST['pass_util'];
$entreprise=$_POST['entreprise_util'];

// Test de non-nullité des entrées du formulaire sinon redirection page d'accueil
if(($login="")||($pass="")||($entreprise=""))
{
header('Location: accueil_admin.php');
}

etc...

Je comprend pas pourquoi ce test ne marche pas...
Merci d'avance pour votre aide!

8 réponses

giheller
Messages postés
1845
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
9 juin 2022
139
29 août 2009 à 16:32
bonjour,
êtes vous sûr du passage des valeurs ?

mettez ceci pour le vérifier
<?php

// Recuperation des entrées du formulaire
echo "<pre>";print_r($_POST);echo "</pre>";
$login=$_POST['login_util'];
$pass=$_POST['pass_util'];
$entreprise=$_POST['entreprise_util'];
0
Oui, car meme si mon test ne marche pas (c'est à dire que certains champs peuvent être laissés vides), le traitement (ajout de l'utilisateur) se fait, en laissant des champs vides dans ma bdd là correspondant aux champs qui ont été laissés vides dans le formulaire...
0
giheller
Messages postés
1845
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
9 juin 2022
139
29 août 2009 à 18:20
tentez avec isempty

if (isempty($login) ....
0
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
353
29 août 2009 à 18:30
utilise plutot isset que empty pour verifier

empty te verifie si la variable est vide, et si elle n'existe pas cela te retourne une erreur
isset test si elle existe qu'elle soit vide ou pas

donc ton code de verif sera de cette forme

if(!isset($login) || !isset($pass) || !isset($entreprise))
{
header('Location: accueil_admin.php');
} 
0
giheller
Messages postés
1845
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
9 juin 2022
139
29 août 2009 à 18:37
il me semble cependant dans son cas que isset sera toujours vrai puisqu'il fait une affectation avec quelque chose qui peut être vide.
0
pyschopathe
Messages postés
1963
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
137 > giheller
Messages postés
1845
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
9 juin 2022

29 août 2009 à 19:14
Le test à effectuer serait plutôt
if( !isset( $login, $pass, $entreprise ) ) {
  // redirection
}
isset vérifie aussi que les variables ne sont pas null, ça devrait donc faire l'affaire. Passer les trois variables à la fonction est plus efficace car évite d'appeler trois fois la fonction.
0
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
353 > giheller
Messages postés
1845
Date d'inscription
dimanche 14 juin 2009
Statut
Membre
Dernière intervention
9 juin 2022

29 août 2009 à 21:10
mais il y aura une erreur PHP Notice: Undefined variable:......etc

donc plantage ;-)
0
le père > lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015

29 août 2009 à 21:33
Non, il n'y a pas de warning ni de plantage avec isset sur des variables non définies. C'est le rôle même de isset de dire si une variable est définir ou non !
0
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
353 > le père
29 août 2009 à 21:44
C'est justement ce que je disais le pere ... ;-)
je repondais a gilher
Tentez avec isempty

if (isempty($login) .... 


la il va y avoir un bug si la variable n'existe pas

et voila ce que je disais au debut du post
empty te verifie si la variable est vide, et si elle n'existe pas cela te retourne une erreur
isset test si elle existe qu'elle soit vide ou pas
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lewis34
Messages postés
2557
Date d'inscription
samedi 21 juillet 2007
Statut
Membre
Dernière intervention
30 mai 2015
353
29 août 2009 à 20:58
comme quoi on en apprend tout les jours ;-)

psychopate je ne connaissais pas cette syntaxe c'est toujours utile

personellement pour testester j'utilise ceci

$id = isset($_GET['id']) ? $_GET['id'] : null;

ou
$id = isset($_POST['id']) ? $_POST['id'] : null;


l'avantage ca tien en une ligne
0
Bonjour

Indépendamment des autres problèmes, il y avait une erreur classique dans le script initial :
if(($login="")||($pass="")||($entreprise="")) 

la test d'égalite, c'est == et non pas =
if(($login=="")||($pass=="")||($entreprise=="")) 
0
khlifi.hamza
Messages postés
82
Date d'inscription
vendredi 28 août 2009
Statut
Membre
Dernière intervention
18 mars 2010
4
29 août 2009 à 23:03
salut
regarde frero
tu dois verifier si t'as des fonctions "include()" de ta page de conection en d'autre terme il se peut que t a une variable qui porte le meme nom de login ou pass et surement sur ta page conection.php il y a une variable pass a laquel t as attribué une valeur
merci
0
En effet j'avais un conflit avec d'autres variables définies précedemment, en changeant le nom des variables du formulaire (j'ai juste rajouté un 1 a la fin...) ca marche nickel!

// Recuperation des entrées du formulaire
$login1=$_POST['login_util'];
$pass1=$_POST['pass_util'];
$entreprise1=$_POST['entreprise_util'];
$acces1=$_POST['acces_util'];

// Test de non-nullité des entrées du formulaire sinon redirection accueil + message

if(($login1=="")||($pass1=="")||($entreprise1==""))
{
header('Location: accueil_admin.php');
}


Merci a tous!
0