Porblème de varriable pas enregistrer

Par yosaku, il y a 12 ans


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

flo3376, il y a 12 ans

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.

Tackacoder, il y a 12 ans

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

yosaku, il y a 12 ans

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