IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Renvoi toujours de la même erreur


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut Renvoi toujours de la même erreur
    Bonjour,

    J'apprends la programmation sur le tas et vous expose un problème ou je sèche totalement. J'ai créé un formulaire d'inscription avec les vérifications d'usages :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    <?php 
    if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
    	if (empty($_POST['hidden'])) {
    		if (!empty($_POST['login']) && (!empty($_POST['pass'])) && (!empty($_POST['pass_confirm'])) && (!empty($_POST['email'])) && (!empty($_POST['email_confirm']))) {
    			if ($_POST['pass'] == $_POST['pass_confirm']) {
    				if ($_POST['email'] == $_POST['email_confirm']) {
     
    					$base = mysql_connect ('localhost', 'root', ''); 
    					mysql_select_db ('membre', $base); 
     
    					$sql = 'SELECT count(*) FROM connexion WHERE login="'.mysql_escape_string($_POST['login']).'"'; 
    					$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
    					$data = mysql_fetch_array($req); 
     
    					if ($data[0] == 0) { 
     
    						$sql = 'INSERT INTO connexion VALUES("", "'.mysql_escape_string($_POST['login']).'", "'.md5(mysql_escape_string($_POST['pass'])).'", "'.mysql_escape_string($_POST['login']).'")'; 
    						mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error()); 
     
    						session_start(); 
    						$_SESSION['login'] = $_POST['login']; 
    						header('Location: espace_membre.php'); 
    						exit(); 
     
    					} else { $erreur = 'Un membre possède déjà ce login.'; }
    				} else { $erreur = 'Les 2 adresses mail sont différentes'; }
    			} else { $erreur = 'Les 2 mots de passe sont différents.'; }
    		} else { $erreur = 'Au moins un des champs est vide.'; }
    	} else { $erreur =  'Sale bot !!'; }
    } 
    ?>
     
    <html> 
    <head> 
    <title>Inscription</title>
    <link rel="stylesheet" href="style.css" /> 
    </head> 
     
    <body> 
    <div class="block">
     
    <form action="inscription.php" method="post"> 
     
    <label for="login">Login : </label><input type="text" id="
    <?php if (isset($_POST['login'])) echo htmlentities(trim($_POST['login'])); ?>">
    <br /> 
     
    <label for="pass">Mot de passe : </label><input type="password" id="
    <?php if (isset($_POST['pass'])) echo htmlentities(trim($_POST['pass'])); ?>"> 
    <br /> 
     
     
    <label for="pass_confirm">Confirmation du mot de passe : </label><input type="password" id="
    <?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>">
    <br />
     
    <label for="email">Email :</label><input type="text" id="
    <?php if (isset($_POST['email'])) echo htmlentities(trim($_POST['email'])); ?>">
    <br />
     
    <label for="email_confirm">Confirmation de l'email : </label><input type="text" id="
    <?php if (isset($_POST['email_confirm'])) echo htmlentities(trim($_POST['email_confirm'])); ?>">
    <br />
     
    <label for="hidden"></label><input type="hidden" id="<?php if (isset($_POST['hidden'])) echo htmlentities(trim($_POST['hidden'])); ?>">
     
    <p><input type="submit" name="inscription" value="Inscription"></p> 
    </form>
     
    </div>
     
    <?php if (isset($erreur)) echo '<br />',$erreur; ?> 
     
    </body> 
    </html>
    La page me retourne toujours l'erreur : "Au moins un des champs est vide."

    Cf code ligne 28,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		} else { $erreur = 'Au moins un des champs est vide.';
    même lorsque toutes les conditions sont bien remplies.
    Je suppose qu'il y a un soucis en ligne 4 mais ne trouve pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    		if (!empty($_POST['login']) && (!empty($_POST['pass'])) && (!empty($_POST['pass_confirm'])) && (!empty($_POST['email'])) && (!empty($_POST['email_confirm']))) {
    Si vous aviez la bonté de m'aiguiller !!
    De même, toute remarque sur le code est la bienvenue.

  2. #2
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo '<pre>';
    print_r($_POST);
    echo '</pre>';
    te renvoie quoi ?

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut
    ça me donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Array
    (
     [inscription] => Inscription
    )
    ainsi que mon "Au moins un des champs est vide.", bien sur ^^

  4. #4
    Membre émérite
    Inscrit en
    Juillet 2003
    Messages
    625
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 625
    Par défaut
    tu n'as pas qu'une seule clé dan ton $_POST...

    login
    pass
    ..
    ?

    Tu devrais avoir :

    login => val
    pass =>
    etc...

  5. #5
    Membre émérite
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Par défaut
    L'erreur viens de l'avant dernier else qui correspond à cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (empty($_POST['hidden'])) {
    C'est donc logique car la première fois que tu arrive sur la page, $_POST['hidden'] n'existe pas, et vu que c'est un champ hidden ba impossible pour l'utilisateur de le modifier

  6. #6
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Bonjour,

    Pour moi tous les champs sont mal formés, essaie ce code (je ne l'ai pas testé) et surtout cherche a comprendre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
     
    <?php 
    session_start();
     
    $inscription=     (isset($_POST['inscription']))   ?($_POST['inscription'])   :("");
    $hidden=          (isset($_POST['hidden']))        ?($_POST['hidden'])        :("");
    $login=           (isset($_POST['login']))         ?($_POST['login'])         :("");
    $pass=            (isset($_POST['pass']))          ?($_POST['pass'])          :("");
    $pass_confirm=    (isset($_POST['pass_confirm']))  ?($_POST['pass_confirm'])  :("");
    $email=           (isset($_POST['email']))         ?($_POST['email'])         :("");
    $email_confirm=   (isset($_POST['email_confirm'])) ?($_POST['email_confirm']) :("");
    $erreur = "";
     
    // si formulaire envoye
    if($inscription == 'Inscription') {
     
       if( empty($login) || empty($pass) || empty($pass_confirm) || empty($email) || empty($email_confirm) )  
          $erreur = "Au moins un des champs est vide.";
     
       if(empty($erreur)) {
          if($pass != $pass_confirm) 
             $erreur = "Les 2 mots de passe sont différents.";
       }
     
       if(empty($erreur)) {
          if($email != $email_confirm)
             $erreur = "Les 2 adresses mail sont différentes";  
       }
     
       if(empty($erreur)) {
          $base = mysql_connect ('localhost', 'root', '') or die(mysql_error()); 
    	   mysql_select_db ('membre', $base) or die(mysql_error());
     
    	   $sql= "SELECT COUNT() FROM connexion WHERE login = '".mysql_real_escape_string($login,$base)."'";
    	   $req= mysql_query($sql,$base) or die (mysql_error());
    	   $data= mysql_fetch_row($req);
     
    	   if(empty($data[0])) {
     
    	     $sql= "INSERT INTO connexion VALUES('','".mysql_real_escape_string($login,$base)."','".md5($pass)."','".mysql_real_escape_string($login)."')";
    	     if(!mysql_query($sql,$base)) die (mysql_error());
     
    	     header('Location: espace_membre.php');
    	     exit();
     
    	   }else
    	     $erreur = "Un membre possède déjà ce login."; 
     
       }
    }
    ?>
     
    <html> 
    <head> 
    <title>Inscription</title>
    <link rel="stylesheet" href="style.css" /> 
    </head> 
     
    <body> 
    <div class="block">
     
    <form action="inscription.php" method="post"> 
     
    <label for="login">Login : </label><input type="text" name="login" id="login" value="<?php echo $login; ?>" />
    <br /> 
     
    <label for="pass">Mot de passe : </label><input type="password" name="pass" id="pass" value="" />
    <br /> 
     
    <label for="pass_confirm">Confirmation du mot de passe : </label><input type="password" name="pass_confirm" id="pass_confirm" value="" />
    <br />
     
    <label for="email">Email :</label><input type="text" name ="email" id="email" value="<?php echo $email; ?>" />
    <br />
     
    <label for="email_confirm">Confirmation de l'email : </label><input type="text" name="email_confirm" id="email_confirm" value="<?php echo $email_confirm; ?>" />
    <br />
     
    <p><input type="submit" name="inscription" value="Inscription"></p> 
    </form>
     
    </div>
     
    <?php if (!empty($erreur)) echo "<br />".$erreur; ?> 
     
    </body> 
    </html>

  7. #7
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 5
    Par défaut
    tu n'as pas qu'une seule clé dan ton $_POST...
    Je me doute bien que je suis censée avoir des clés dans mon $_POST et pourtant, ce qui me tue c'est pourquoi ? où est le problème?

    L'erreur viens de l'avant dernier else qui correspond à cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (empty($_POST['hidden'])) {
    C'est donc logique car la première fois que tu arrive sur la page, $_POST['hidden'] n'existe pas, et vu que c'est un champ hidden ba impossible pour l'utilisateur de le modifier
    J'ai supprimé mon champ caché et toujours le même problème !!

  8. #8
    Membre Expert
    Avatar de ska_root
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2005
    Messages
    1 203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 203
    Par défaut
    Citation Envoyé par Trashdane Voir le message
    Je me doute bien que je suis censée avoir des clés dans mon $_POST et pourtant, ce qui me tue c'est pourquoi ? où est le problème?
    tes champs de type input n'ont pas l'attribut "name" définit, c'est justement lui qui représente ta clé...


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [MySQL] Requête renvoie toujours le même résultat
    Par ProToXiDe dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 02/03/2015, 09h28
  2. DLookUp renvoie toujours même valeur
    Par arthur57 dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/06/2014, 15h49
  3. Le Serveur renvoie la même erreur même après suppression du projet
    Par mesken dans le forum Glassfish et Payara
    Réponses: 0
    Dernier message: 01/04/2011, 08h19
  4. [JTextField] getText renvoie toujours la même valeur
    Par Sufflope dans le forum Composants
    Réponses: 4
    Dernier message: 13/01/2007, 01h12
  5. Réponses: 2
    Dernier message: 16/04/2005, 20h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo