maintenant il me dit que le mot de passe ou l'utilisateur est inccorect
quel peut etre l'erreur? pourtant j'ai tout saisie bien comme il faut
Version imprimable
maintenant il me dit que le mot de passe ou l'utilisateur est inccorect
quel peut etre l'erreur? pourtant j'ai tout saisie bien comme il faut
En regardant le code de la page d'enregistrement
On voit que vous enregistrez le mot de passe en clairCode:
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 $mot_de_passe=$_POST['mot_de_passe']; $numero_de_telephone=$_POST['numero_de_telephone']; $numero_de_carte_bancaire=$_POST['numero_de_carte_bancaire']; $nom_du_titulaire=$_POST['nom_du_titulaire']; $type_de_carte=$_POST['type_de_carte']; $expiration=date("m/Y", mktime(0, 0, 0, $_POST['mois'], 1, $_POST['annees'])); $cryptogramme=$_POST['cryptogramme']; $pays=$_POST['pays']; // on ajoute les données saisies dans le formulaire d'inscription dans la table base_de_données à l'aide d'une requète préparée. $req = $bdd->prepare('INSERT INTO base_de_donnees(nom, prenom, date_de_naissance, adresse_mail, mot_de_passe, numero_de_telephone, numero_de_carte_bancaire,nom_du_titulaire,type_de_carte,expiration,cryptogramme,pays) VALUES(:nom,:prenom,:date_de_naissance,:adresse_mail,:mot_de_passe,:numero_de_telephone,:numero_de_carte_bancaire,:nom_du_titulaire,:type_de_carte,:expiration,:cryptogramme,:pays)'); $req->execute(array( 'nom' => $nom, 'prenom' => $prenom, 'date_de_naissance' => $date_de_naissance, 'adresse_mail' => $adresse_mail, 'mot_de_passe' => $mot_de_passe, 'numero_de_telephone' => $numero_de_telephone, 'numero_de_carte_bancaire' => $numero_de_carte_bancaire, 'nom_du_titulaire' => $nom_du_titulaire, 'type_de_carte' => $type_de_carte, 'expiration' => $expiration, 'cryptogramme' => $cryptogramme, 'pays' => $pays, ));
Hors lors du login,
Vous utilisez la fonction md5 pour vérifiez le hash du mot de passe :(
Il faudrait enregistrer le mot de passe hashé en md5 également ;)Code:
1
2
3
4
5 // Cryptage du mot de passe $mot_de_passe=md5($mot_de_passe); // on exécute la requete pour pouvoir se connecter $prepare=$bdd->prepare("SELECT * FROM base_de_donnees WHERE adresse_mail=? AND mot_de_passe=? ");
Comme sa ?Code:
1
2 'mot_de_passe' => md5($mot_de_passe), $mot_de_passe=md5($_POST['mot_de_passe']));
Oui :)
mais il ne me connecte pas sur la page membre est ce que cela viendrait de la table mot de passe il mindique tjrs mot de passe et utilisateur inccorect
On va ajoutez un peu de debug
Vérifiez que vous avez bien une entrée en base avec cet email et ce mot de passe hashé ;)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 // on exécute la requete pour pouvoir se connecter $prepare=$bdd->prepare("SELECT count(*) as total FROM base_de_donnees WHERE adresse_mail=? AND mot_de_passe=? "); $prepare->execute(array($adresse_mail,$mot_de_passe)); $rows= $prepare->fetch(PDO::FETCH_OBJ)->total; //debug print "user: '$adresse_mail' mot de passe:'$mot_de_passe' ";exit; if ($rows == 1){ $_SESSION['adresse_mail'] = $adresse_mail; echo('location:membre.php'); }else{ echo"Nom d'utilisateur ou mot de passe incorrect"; } }
hache dans php my admin?
Vous modifiez votre code comme indiqué ci dessus, pour afficher l'email + mot de passe tel que recherché dans la base mysql
Puis dans phpmyadmin, vous regardez si il y a bien une entrée qui correspond ;)
le mot de passe a bien ete haché dans php my admin par contre je souhaite quand meme me connecter dans l'espace membre dont je n'arrive pas.
http://www.hostingpics.net/viewer.ph...1Sanstitre.png
puis je met la date 16/03/1993 il me met dans la base 16/07/2013 est ce normal?
Et vous trouvez bien via phpmyadmin une ligne avec votre email boro***orange.fr et mot de passe 915***102b ?
note: votre table qui contient les email/mot de passe s'appelle vraiment "base_de_donnees" ou c'est pour ne pas communiquer le nom de votre table ?
Augmentons le debug
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 // on exécute la requete pour pouvoir se connecter $prepare=$bdd->prepare("SELECT count(*) as total FROM base_de_donnees WHERE adresse_mail=? AND mot_de_passe=? "); $prepare->execute(array($adresse_mail,$mot_de_passe)); $result=$prepare->fetch(PDO::FETCH_OBJ); //on va afficher ce qui est retourne var_dump($result); //debug print "user: '$adresse_mail' mot de passe:'$mot_de_passe' ";exit; $rows= $result->total; if ($rows == 1){ $_SESSION['adresse_mail'] = $adresse_mail; echo('location:membre.php'); }else{ echo"Nom d'utilisateur ou mot de passe incorrect"; } }
oui la table sappelle comme sa
Et pour le reste de mon messsage ?
1. trouvez vous un enregistrement pour votre email boro***orange.fr et mot de passe 915***102b ?
2. essayez le code suivant pour debuger
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 // on exécute la requete pour pouvoir se connecter $prepare=$bdd->prepare("SELECT count(*) as total FROM base_de_donnees WHERE adresse_mail=? AND mot_de_passe=? "); $prepare->execute(array($adresse_mail,$mot_de_passe)); $result=$prepare->fetch(PDO::FETCH_OBJ); //on va afficher ce qui est retourne var_dump($result); //debug print "user: '$adresse_mail' mot de passe:'$mot_de_passe' ";exit; $rows= $result->total; if ($rows == 1){ $_SESSION['adresse_mail'] = $adresse_mail; echo('location:membre.php'); }else{ echo"Nom d'utilisateur ou mot de passe incorrect"; } }
Oui elle est bien dans la table lorsque j'ai enregistré.
maintenant il me dit veuillez saisir votre adresse mail or le mail est le bont pourtant
Pouvez vous essayer mon code de debug et coller ici la sortie ?
Pour info on affiche en detail la sortie de la requete
Veuillez saisir votre adresse mail ===> message qui safiche lorsque jessaie de me connecter a mon avis il y a un probleme de redirection
je pense que c'est un problème de redirection mais je vois pas comment le résoudre
Pour confirmer un eventuel problème de redirection, ajoutez un echo de la page vers où rediriger
Par exemple remplacer
parCode:
1
2 header('Location:member.php');
Code:
1
2
3 echo "redirection member.php";exit; header('Location:member.php');
cela ne marche toujours pas même en changeant par ce code
Il faut être plus précis: quel code ?
Au départ vous aviez un soucis de "mot de passe incorrect" j'ai proposé un premier debug où on a pu voir apparaitre l'email et le mot de passe hashé afin de vérifier qu'il existait bien en base de donnée
Ensuite vu qu'il est bien en base de donnée j'ai proposé un second code pour afficher en détail le retour de la même requete, et la vous me dites qu'il y a une autre erreur: "Veuillez saisir votre adresse mail" et que le problème doit venir d'une redirection :(
Enfin je vous dis pour confirmer que c'est un problème de redirection, faites des echo des redirections
Et vous me répondez
Quel code ne va pas ?Citation:
cela ne marche toujours pas même en changeant par ce code