Bonjour, voilà je planque sur un formulaire d'inscription avec différent niveau de test. Le problème c'est que mon formulaire ne passe pas le test des !empty même si les varriables sont bien envoyer voilà mon code :

<?php
if(isset($_POST'prenom'], $_POST'date'], $_POST'nom'], $_POST'pass1'], $_POST'pass2'], $_POST'adresse'], $_POST'ville'], $_POST'codep'], $_POST'tel'], $_POST'email'], $_POST'pays']))
{
            $nom = mysql_real_escape_string(trim($_POST'nom']));
            $prenom = mysql_real_escape_string(trim($_POST'prenom'])); 
            $email= htmlspecialchars(trim($_POST'email']));  
            $pass1= mysql_real_escape_string(trim($_POST'pass1']));
            $pass2= mysql_real_escape_string(trim($_POST'pass2'])); 
                $date = mysql_real_escape_string(trim($_POST'date']));
            $tel= mysql_real_escape_string(trim($_POST'tel']));
            $pays= mysql_real_escape_string(trim($_POST'pays']));
                $adresse = mysql_real_escape_string(trim($_POST'adresse']));
            $codep=mysql_real_escape_string(trim($_POST'codep']));
                $ville= mysql_real_escape_string(trim($_POST'ville']));

  if(!empty($nom) && !empty($prenom) && !empty($email) && !empty($pass1) && !empty($pass2) && !empty($date) && !empty($tel) && !empty($pays) && !empty($adresse) && !empty($codep) && !empty($ville))
   { 
      require "../../inclusions/config.php";
      mysql_connect(DB_HOST,DB_LOGIN,DB_PASS);
      mysql_select_db(DB_BDD);
      mysql_query ('SET NAMES "UTF8"');

      $sql = 'Select email from membres where email="'.$email.'"';
            $req = mysql_query($sql); 
  if(mysql_num_rows($req)>0)
  {
      header('location:../inscription.php?erreur=4&nom='.$_POST"nom"].'&pass1='.$_POST"pass1"].'&pass2='.$_POST"pass2"].'&date='.$_POST"date"].'&prenom='.$_POST"prenom"].'&adresse='.$_POST"adresse"].'&codep='.$_POST"codep"].'&tel='.$_POST"tel"].'&pays='.$_POST"pays"].'&email='.$_POST"email"].'&ville='.$_POST"ville"]);
  }
  else
    {
      $mdp = strcmp($pass1, $pass2);
      if($mdp == 0) 
      { /*
          $msgT = 'Merci de vous êtes inscrit sur le site Yamaël \n Voici vos infomations de connexion : \n
          identifiant : '.$email.'\n Mot de passe : '.$pass1.'\n Cordialement.';
          $sjt = "Inscription";
          $entete="X-Priority:1\n";   
          $msg=" ";
          $msg.="Ce mail a été envoyer via le site Yamaël.com :\n";
          $msg.=" ";
          $msg.="Sujet : ".$sjt."\n";
          $msg.="Message : ".$msgT."\n";
          $msg.=" ";
          mail($email,$sjt,$msg,$entete); */
            $sql = "insert into membres(id, nom, prenom, date, tel, email, pass1, pays, adresse, codep, ville) values('null', '".$nom."', '".$prenom."','".$date."','".$tel."','".$email."','".$pass1."','".$pays."','".$adresse."','".$codep."','".$ville."')";
            mysql_query($sql) or die('Erreur SQL !'.$sql.'<br/>'.mysql_error());

            mysql_close(); 

            header('location:../inscription.php?erreur=2');    
      }
      else
      {
             header('location:../inscription.php?erreur=3&nom='.$_POST"nom"].'&pass1='.$_POST"pass1"].'&pass2='.$_POST"pass2"].'&date='.$_POST"date"].'&prenom='.$_POST"prenom"].'&adresse='.$_POST"adresse"].'&codep='.$_POST"codep"].'&tel='.$_POST"tel"].'&pays='.$_POST"pays"].'&email='.$_POST"email"].'&ville='.$_POST"ville"]);   
      }       
   }

}
 else //Si les varriables sont vides
  {
    header('location:../inscription.php?erreur=5&nom='.$_POST"nom"].'&pass1='.$_POST"pass1"].'&pass2='.$_POST"pass2"].'&date='.$_POST"date"].'&prenom='.$_POST"prenom"].'&adresse='.$_POST"adresse"].'&codep='.$_POST"codep"].'&tel='.$_POST"tel"].'&pays='.$_POST"pays"].'&email='.$_POST"email"].'&ville='.$_POST"ville"]);
  }   
}
else header('location:../inscription.php?erreur=1');
?>

Les isset passent mais pas les !empty qui redirige directement vers le else.
Voilà si quelqu'un a une idée =)
Merci d'avance !

3 réponses


Tackacoder
Réponse acceptée

Bonjour,
à la 1er ligne, fait plutot un if(!empty($_POST'nom']) && !empty($_POST'prenom']) && etc....)

Salut

fait un extract $post; au départ de ton script en L2 déja ça t'évitera de devoir mettre ($_POST'nom']) et fait quelque echo, car isset dis juste que la variable à été définis, et non pas si elle à été remplis. donc si ça se trouve tu envoies des variable vide. Le formulaire est appart il semblerai peut tu mettre un copie pour voir quelque chose.

yosaku
Auteur

Ok merci c'était bien ça, problème résolu =)