Vous êtes ici : TooZeWeB > Liste des forums > Programmation web > PHP et autres langages serveur > La page de connexion d'un espace membre > Lecture du sujet

Forums de TooZeWeB

Sujet résolu

Redirection rapide vers
Page : 1

Vous devez être inscrit et connecté pour pouvoir écrire dans les forums

La page de connexion d'un espace membre ['Je ne sais pas comment m'y prendre']
jedou13 Posté le 09/07/2008 16:38 - Remonter




75 messages

0 %
Bonjour, j'ai commencer un espace membres, donc j'ai fait la page d'inscription, mais je ne sais pas comment faire la page de connexion, merci


Sam Posté le 09/07/2008 17:19 - Remonter




88 messages
18 ans
0 %
Salut, le but de la page de connexion est, basiquement, de verifier si les informations servant à la connexion (pseudo et mot de passe en general) sont bien celles qui ont été enregistrées dans la base de données lors de l'inscription, pour le membre correspondant au pseudo entré.
Tu as réussis à faire ça ?


Image utilisateur

jedou13 Posté le 09/07/2008 17:26 - Remonter




75 messages

0 %
Voila monde code [qui ne marche pas]
Code php - Numéro de ligne
  1. mysql_connect('sql.free.fr','ultimatnintendo','**********');
  2. mysql_select_db('ultimatnintendo');
  3.  
  4. $pseudo = mysql_real_escape_string(htmlspecialchars($_POST['pseudo']));
  5. $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  6.  
  7. $pseudo_exist = mysql_query("SELECT COUNT(*) AS exist FROM membres WHERE login='$login'")or die(mysql_error());
  8. $donnees = mysql_fetch_array($pseudo_exist);
  9. if($donnes['exist'] != 0) // Si login existe
  10. {
  11. $quete = mysql_query("SELECT * FROM membres WHERE login= '" .$login. "')")or die(mysql_error());
  12. $infos = mysql_fetch_array($quete);
  13. if($pass == $infos['pass'])
  14. {
  15. echo 'Vous etes bien loguée!';
  16. //Redirection
  17. }
  18. {
  19. echo 'Votre identifiants/mot de passe est incorrect';
  20. //Affichage du formulaire
  21. }
  22. }


Sam Posté le 09/07/2008 17:33 - Remonter




88 messages
18 ans
0 %
Je vois, déjà dans ces 2 requêtes :

$pseudo_exist = mysql_query("SELECT COUNT(*) AS exist FROM membres WHERE login='$login'")or die(mysql_error());
$quete = mysql_query("SELECT * FROM membres WHERE login= '" .$login. "')")or die(mysql_error());

$login n'est définis nul part dans le code que tu m'as envoyé, se serait pas plutot $pseudo que tu devrais utiliser à la place ?

Ensuite ici j'ai un doute :

if($pass == $infos['pass'])

Tu as $pass qui est le mot de passe entré par le membre dans le champ mot de passe du formulaire de connexion et $infos['pass'] qui est le mot de passe qui a été enregistré dans la bdd, ça risque de pose probleme si tu as hashé le mot de passe lors de l'inscription, si c'est le cas cette condition sera toujours fausse et pour y remedier il faudrait hasher aussi $pass de façon à comparer deux choses comparables.

edit: ah aussi il manque un "e" ici à $donnes :

if($donnes['exist'] != 0) // Si login existe

Edité par Sam le 09/07/2008 17:45


Image utilisateur

jedou13 Posté le 09/07/2008 18:30 - Remonter




75 messages

0 %
Bon, du news, que je mette un bon ou mauvais login/mot de passe, ca me dit "Votre identifiants/mot de passe est incorrect"
voilou tenez le code:
Code php - Numéro de ligne
  1. mysql_connect('sql.free.fr','ultimatnintendo','***'); //attention à ne pas laisser ton mot de passe
  2. mysql_select_db('ultimatnintendo');
  3.  
  4. $login = mysql_real_escape_string(htmlspecialchars($_POST['login']));
  5. $pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
  6.  
  7. $pseudo_exist = mysql_query("SELECT COUNT(*) AS exist FROM membres WHERE login='$login'")or die(mysql_error());
  8. $donnees = mysql_fetch_array($pseudo_exist);
  9. if($donnees['exist'] != 0) // Si login existe
  10. {
  11. $quete = mysql_query("SELECT * FROM membres WHERE login=' $login'")or die(mysql_error());
  12. $infos = mysql_fetch_array($quete);
  13. if($pass == $infos['pass'])
  14. {
  15. echo 'Vous etes bien loguée!';
  16. //Redirection
  17. }
  18. {
  19. echo 'Votre identifiants/mot de passe est incorrect';
  20. //Affichage du formulaire
  21. }
  22. }

Edité par Sam le 09/07/2008 18:34


Sam Posté le 09/07/2008 18:34 - Remonter




88 messages
18 ans
0 %
Utilises-tu un hash sur le mot de passe (md5 ou sha1 etc.) ?

Edité par Knoppix le 09/07/2008 18:59


Image utilisateur

jedou13 Posté le 09/07/2008 19:05 - Remonter




75 messages

0 %
Non, le mot de passe n'est pas crypté dans la BDD


Knoppix Posté le 09/07/2008 19:17 - Remonter
Vive l'Open Source et vive Linux !



96 messages

0 %
Dans ce cas le problème viens d'ici :
Code php - Numéro de ligne
  1. $infos = mysql_fetch_array($quete);
  2. if($pass == $infos['pass'])


Essai de faire la même chose mais avec une boucle, un truc du genre :
Code php - Numéro de ligne
  1. while ($infos = mysql_fetch_array($quete))
  2. {


Tu vois ce que je veux dire ?


Amicalement,
Knoppix

Sam Posté le 09/07/2008 19:18 - Remonter




88 messages
18 ans
0 %
Hm je pense que l'erreur est très simple et se résume à un espace :
Remplace ça, il y a un espace en trop dans la zone en rouge :

$quete = mysql_query("SELECT * FROM membres WHERE login=' $login'")or die(mysql_error());

Par :

$quete = mysql_query("SELECT * FROM membres WHERE login='$login'")or die(mysql_error());


Image utilisateur

jedou13 Posté le 09/07/2008 21:46 - Remonter




75 messages

0 %
Oui sam, tu avais raison, merci :d


Sam Posté le 09/07/2008 21:58 - Remonter




88 messages
18 ans
0 %
De rien ton probleme est donc résolu ?


Image utilisateur

jedou13 Posté le 09/07/2008 22:30 - Remonter




75 messages

0 %
Non, j'ai un nouveau probleme toujours sur l'espace membres, je me loggue, il me dise que je suis bien logué, mais quand je vais sur une page protégé, beh il me dise que je ne suis pas logué :s
j'ai donc remplacer :
Code php - Numéro de ligne
  1. {
  2. echo 'Vous etes bien loguée! <a href="http://ultimatnintendo.free.fr/quizz/page.php">clique</a>';
  3. //Redirection
  4. }


par:
Code php - Numéro de ligne
  1. {
  2.     $_SESSION['login'] = $login;
  3. echo 'Vous etes bien loguée! <a href="http://ultimatnintendo.free.fr/quizz/page.php">clique</a>';
  4. //Redirection
  5. }

Edité par jedou13 le 09/07/2008 22:32


Sam Posté le 09/07/2008 22:32 - Remonter




88 messages
18 ans
0 %
C'est parce qu'il faut definir une session, que tu peux appeller "connecte" par exemple, lors de la connexion


Image utilisateur

jedou13 Posté le 09/07/2008 22:33 - Remonter




75 messages

0 %
Je comprend pas ce quez tu veux dire


Sam Posté le 09/07/2008 22:35 - Remonter




88 messages
18 ans
0 %
J'avais pas vu que t'avais édité

Donc si tu fais tes conditions sur $_SESSION['login'] c'est bon. As-tu une erreur php avec le code actuel ?

Edité par Sam le 09/07/2008 22:37


Image utilisateur

jedou13 Posté le 09/07/2008 22:38 - Remonter




75 messages

0 %
Justement c'est pas bon, il me dise toujours pareil; que je ne suis pas logué ... aucune erreur
tester le script: http://ultimatnintendo.free.fr/quizz/connexion.php
login: test_login
pass: test_pass


Sam Posté le 09/07/2008 22:40 - Remonter




88 messages
18 ans
0 %
Mais est ce que tu fais une condition sur l'affichage du formulaire pour l'afficher que si le membre n'est pas logué genre :
Code php - Numéro de ligne
  1. if (!empty($_SESSION['login']))
  2.     echo 'Vous êtes déjà connecté';
  3. {
  4.   // le formulaire ici
  5. }


En ayant pris soins de mettre session_start(); avant tout code html dans le fichier connexion.php


Image utilisateur

Page : 1

Vous devez être inscrit et connecté pour pouvoir écrire dans les forums

Redirection rapide vers

Retour à la liste des forums, au forum PHP et autres langages serveur, ou au haut de page