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 :

Validation avec touche Entree : OK, avec clic : erreur !


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Par défaut Validation avec touche Entree : OK, avec clic : erreur !
    Bonjour,

    J'ai un problème étrange et je ne vois pas vraiment d'ou il peut venir.
    J'ai un formulaire de connexion (connexion.php) tout ce qu'il ya de plus banal et une page de verification du login et du mot de passe (verifLogin.php).
    Les deux pages marchent tres bien sauf que :
    Losque je veux soumettre le formulaire à l'aide de la touche Entree, pas deproblème verifLogin.php recupere bien les donnees et me connecte.
    Par contre si je soumets le formulaire en cliquant sur le bouton valider là il me dit systemetiquement que ce ne sont pas les bons identifiants.
    Bref comment est-ce possible que ce ne soit pas les memes traitements en cliquant ou en entrant?

    Je ne sais pas j'ai été bien claire, je l'espere.
    Voici mon code :

    connexion.php :
    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
     
    <body>
    <div id="connex"  align="center"  > Se connecter :
      <form id="formConnexion" action="verifLogin.php" method="post">
        <div class="formFrame">
          <div class="formRow">
            <label for="code">Code </label>
            <input id="code" type="text" name="code"
    					   dojoType="ValidationTextbox" trim="true" ucfirst="true" required="true"
    					   missingMessage="* Veuillez inscrire votre code" />
          </div>
          <div class="formRow">
            <label for="mdp">Mot de passe</label>
            <input id="mdp" type="password" name="mdp"
    			   dojoType="ValidationTextbox" trim="true" ucfirst="true" required="true"
    			   missingMessage="*Veuillez inscrire votre mot de passe" />
          </div>
          <br />
          <br />
          <div class="formRow" style="text-align: center;" >
            <input type="submit"  value="Valider"/>
     
          </div>
        </div>
      </form>
    </div>
    </body>
    verifLogin.php
    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
     
    session_start();
     
    // on se connecte à la bd
    $bd= new connexionBd("planning");
    $loginOK = false; 
     
    // On n'effectue les traitement qu'à la condition que
    // les informations aient été effectivement postées
    if ( isset($_POST) && (!empty($_POST['code'])) && (!empty($_POST['mdp'])) ) {
     
      extract($_POST);  
      // On va chercher le mot de passe afférent à ce login
      $sql = "SELECT code, mot_de_passe, id_droits FROM salarie WHERE code = '".$code."'";
      $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
     
      // On vérifie que l'utilisateur existe bien
      if (mysql_num_rows($req) > 0) {
         $data = mysql_fetch_array($req);
     
        // On vérifie que son mot de passe est correct
        if ($data['mot_de_passe']== sha1($mdp)) {
          $loginOK = true;
    	}
    	else
    	{
    		$loginOK = false;
    	}
      }
    }
     
    // Si le login a été validé on met les données en sessions
    if ($loginOK !== false) {
      $_SESSION['code'] = $code;
      header('Location: /planning2/OAF/index.php');
    }
    else {
     
    	echo 'Une erreur est survenue : Peut-etre vous &ecirc;tes-vous tromp&eacute;s de mot de passe ou de login?! Veuillez r&eacute;essayer !';
    	?><a href="connexion.php">Retour !</a><?php
    }
    ?>
    Merci de votre aide !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    1 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 125
    Par défaut
    As tu fais le meme test en cliquant et en entrant?
    Par exemple : admin et ADMIN qui n'est pas le meme chose !

    Sinon je vois vraiment pas, normalement c'est les meme info quand tu clique et quand t'appuis sur entrée

    Essai de mettre des echos dans ton code pour voir si le nom et le mot de passe est correct dans les cas


    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
    session_start();
     
    // on se connecte à la bd
    $bd= new connexionBd("planning");
    $loginOK = false; 
     
    // On n'effectue les traitement qu'à la condition que
    // les informations aient été effectivement postées
    if ( isset($_POST) && (!empty($_POST['code'])) && (!empty($_POST['mdp'])) ) {
     
      extract($_POST);  
      // On va chercher le mot de passe afférent à ce login
      $sql = "SELECT code, mot_de_passe, id_droits FROM salarie WHERE code = '".$code."'";
      $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
     
      // On vérifie que l'utilisateur existe bien
      if (mysql_num_rows($req) > 0) {
         $data = mysql_fetch_array($req);
     
        // On vérifie que son mot de passe est correct
        if ($data['mot_de_passe']== sha1($mdp)) {
          $loginOK = true;
    	}
    	else
    	{
    		$loginOK = false;
    	}
      }
    }
     
    // Si le login a été validé on met les données en sessions
    if ($loginOK !== false) {
      $_SESSION['code'] = $code;
    echo $_POST['code'];
    echo $_POST['mdp'];
      //header('Location: /planning2/OAF/index.php');
    }
    else {
    	echo $_POST['code'];
    echo $_POST['mdp'];
    	echo 'Une erreur est survenue : Peut-etre vous &ecirc;tes-vous tromp&eacute;s de mot de passe ou de login?! Veuillez r&eacute;essayer !';
    	?><a href="connexion.php">Retour !</a><?php
    }
    ?>

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    291
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Avril 2007
    Messages : 291
    Par défaut
    Juste pour donner la fin de l'histoire :

    Je ne comprends pas tout mais bon ...

    En fait j'avais fait une erreur lors de la conception de ma base de données mysql : le champ pour le mot de passe crypté etait trop petit...
    Je l'ai donc agrandie et maintenant ça marche nickel que ce soit avec valider ou avec entree.
    Quel rapport? Je n'en sais rien...
    Etrange, non?

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

Discussions similaires

  1. Validation par touche entree avec Internet Explorer
    Par stefanelle dans le forum Langage
    Réponses: 4
    Dernier message: 26/08/2009, 17h31
  2. Réponses: 0
    Dernier message: 20/07/2008, 22h40
  3. Valider un formulaire avec la touche entree
    Par djedie dans le forum ASP.NET
    Réponses: 5
    Dernier message: 29/03/2007, 10h38
  4. [WD9] Validation d'un champ de saisie avec touche entrée
    Par EpOnYmE187 dans le forum WinDev
    Réponses: 11
    Dernier message: 13/01/2006, 15h28

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