Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 28/08/2007, 08h36   #1
Membre actif
 
Inscription : avril 2007
Messages : 286
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 286
Points : 192
Points : 192
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 :
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 :
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 !
__________________
" Pourquoi y a-t'il quelque chose plutôt que rien? " Leibniz
fayred est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/08/2007, 10h29   #2
Débutant
 
Avatar de afrodje
 
Homme Jérémy
Développeur Web
Inscription : octobre 2006
Messages : 1 094
Détails du profil
Informations personnelles :
Nom : Homme Jérémy
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 094
Points : 614
Points : 614
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 :
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
}
?>
__________________
Évènements dans le 06?
www.sortir06.com
afrodje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2007, 11h34   #3
Membre actif
 
Inscription : avril 2007
Messages : 286
Détails du profil
Informations personnelles :
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : avril 2007
Messages : 286
Points : 192
Points : 192
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?
__________________
" Pourquoi y a-t'il quelque chose plutôt que rien? " Leibniz
fayred est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h23.


 
 
 
 
Partenaires

Hébergement Web