Vérif de remplissage complet formulaire php

Résolu
vdelaby -  
 vdelaby -
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!
Configuration: Windows XP Internet Explorer 7.0

8 réponses

  1. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    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
  2. vdelaby
     
    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
  3. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
     
    tentez avec isempty

    if (isempty($login) ....
    0
  4. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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
    1. giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention   146
       
      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
    2. pyschopathe Messages postés 2053 Statut Membre 137 > giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention  
       
      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
    3. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352 > giheller Messages postés 1960 Date d'inscription   Statut Membre Dernière intervention  
       
      mais il y aura une erreur PHP Notice: Undefined variable:......etc

      donc plantage ;-)
      0
    4. le père > lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention  
       
      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
    5. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352 > le père
       
      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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lewis34 Messages postés 2557 Date d'inscription   Statut Membre Dernière intervention   352
     
    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
  7. le père
     
    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
  8. khlifi.hamza Messages postés 90 Statut Membre 4
     
    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
  9. vdelaby
     
    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