recuperer son mot de pass ( requet sql )

recuperer son mot de pass ( requet sql ) - PHP - Programmation

Marsh Posté le 18-03-2009 à 16:21:23    

bonjour,
je suis en train de realisé mon site et je voudrais créer une fonction qui permet de recupérer son mot de pass en cas d'oubli mais apres avoir coder cette fonction je me suis rendu compte que cela ne marché pas alors je voudrais vous demander si ce code marche . quand j'essays sa me mais le message d'erreur comme quoi mon email est introuvable :  

Code :
  1. <?php
  2. $email ='maxime4213@orange.fr';
  3. $reponse = mysql_query("SELECT count(*) as membre_mdp FROM forum_membres WHERE membre_email = '.$email.' " ) or die(mysql_error());
  4. $donnees = mysql_fetch_array($reponse);
  5. if($donnees['membre_email'] == 1)
  6. {
  7. $email =  $_POST["email_m"] ;;
  8. $destinataire='$email';
  9. $expediteur='$email';
  10. $entete= "From: ".$expediteur." <".$expediteur.">\n"."MIME-Version: 1.0";
  11. $titre="recuperation des information ";
  12. $message="voila vos information relative a vote compte :
  13. email : $reponse
  14. ..............";
  15. if(mail($destinataire,$titre,$message,$entete))
  16. {
  17. echo 'votre message a bien été envoyer a cette adresse  :
  18. $email';
  19. }
  20. else
  21. {
  22. echo 'il y a une erreur lors de expedition du message . veuiller réessayer <a href="oublie.php">ici</a>';
  23. }
  24. }
  25. else
  26. {
  27. echo 'votre adresse email existe pas ou vous avez mal saisit votre ardesse email . cliquer <a href="oublie.php">ici pour recommancer</a>';
  28. }
  29. ?>


merci  

Reply

Marsh Posté le 18-03-2009 à 16:21:23   

Reply

Marsh Posté le 18-03-2009 à 16:42:45    

Comment se fait-il qu'on puisse récupérer son mot de passe ? Ca veut dire qu'il est stocké en clair dans la base ? C'est pas bien ça ;)

Reply

Marsh Posté le 18-03-2009 à 16:47:29    

Code :
  1. $reponse = mysql_query("SELECT count(*) as membre_mdp FROM forum_membres WHERE membre_email = '.$email.' " ) or die(mysql_error());


Ta chaîne sql est entre " (double quote). Ta variable $email entre simple quote (normal, c'est du sql). Pas besoin des "." de concaténation.
Soit tu met (...) = '$email'" ), soit tu met (...) = '".$email."'" )
 
Je plussoie FlorenG au passage :jap:


Message édité par kao98 le 18-03-2009 à 16:47:56

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 18-03-2009 à 16:51:46    

j'ai pas compris c'est se que j'ai fais . voila la requet  :

Code :
  1. $reponse = mysql_query("SELECT count(*) as membre_mdp FROM forum_membres WHERE membre_email = '$email'" ) or die(mysql_error());

Reply

Marsh Posté le 18-03-2009 à 16:56:21    

Code :
  1. if($donnees['membre_email'] == 1)
  2. {


Ca devrait aller mieux avec  

Code :
  1. if($donnees['membre_mdp'] == 1)
  2. {


 
Un conseil : relis complètement ton code.


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 18-03-2009 à 17:05:21    

merci maintenant je reçois l'email mais j'ai un autre problème :
je ne vois pas d'en le mail le mot de pass pourquoi ?

Reply

Marsh Posté le 18-03-2009 à 23:37:54    

$message="voila vos information relative a vote compte :
email : $reponse
..............";
 
$reponse, c'est pas une chaîne déjà et surtout, ben si tu mets pas $donnees['membre_mdp'] dans ton message, ben forcément... lol
Vaudrait-mieux que tu redonnes la dernière version de ton script ;)

Reply

Marsh Posté le 18-03-2009 à 23:39:06    

max1395 a écrit :

bonjour,
je suis en train de realisé mon site et je voudrais créer une fonction qui permet de recupérer son mot de pass en cas d'oubli mais apres avoir coder cette fonction je me suis rendu compte que cela ne marché pas alors je voudrais vous demander si ce code marche . quand j'essays sa me mais le message d'erreur comme quoi mon email est introuvable :  


ton site est une vraie passoire à injection SQL, et y'a plein de fautes d'orthographe [:sadnoir]
c'est pas très sérieux tout ça [:cerveau sadnoir]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 19-03-2009 à 09:09:19    

voila le code :

Code :
  1. <?php
  2. $email ='maxime4213@orange.fr';
  3. $reponse = mysql_query("SELECT count(*) as membre_mdp FROM forum_membres WHERE membre_email = '$email'" ) or die(mysql_error());
  4. $donnees = mysql_fetch_array($reponse);
  5. if($donnees['membre_mdp'] == 1)
  6. {
  7. $email =  $_POST["email_m"] ;;
  8. $destinataire='maxime4213@orange.fr';
  9. $expediteur='maxime4213@orange.fr';
  10. $entete= "From: ".$expediteur." <".$expediteur.">\n"."MIME-Version: 1.0";
  11. $titre="recuperation des information ";
  12. $message="voila vos information relative a vote compte :
  13. email : $reponse
  14. ..............";
  15. if(mail($destinataire,$titre,$message,$entete))
  16. {
  17. echo 'votre message a bien été envoyer a cette adresse  :
  18. $email';
  19. }
  20. else
  21. {
  22. echo 'il y a une erreur lors de expedition du message . veuiller réessayer <a href="oublie.php">ici</a>';
  23. }
  24. }
  25. else
  26. {
  27. echo 'votre adresse email existe pas ou vous avez mal saisit votre ardesse email . cliquer <a href="oublie.php">ici pour recommancer</a>';
  28. }
  29. ?>


Reply

Marsh Posté le 19-03-2009 à 09:19:38    

Ok. Tu le fait exprès ? Ou pas !?


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 19-03-2009 à 09:19:38   

Reply

Marsh Posté le 19-03-2009 à 09:22:06    

quoi ?  on m'a demander le code !

Reply

Marsh Posté le 19-03-2009 à 09:25:14    

Es-tu développeur ?
Es-tu développeur php ?
Es-tu l'auteur de ce code ?
 
(juste pour être sûr)


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 19-03-2009 à 09:27:16    

A quel moment, dans ton code, tu crois avoir récupéré le mot de passe de l'utilisateur dans ta BD? :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 19-03-2009 à 09:31:52    

non je ne suis pas développeur et oui c'est mon code , je l'ai créer tout seul  et je ne sais pas a quel moment je récupère le mot de pass

Reply

Marsh Posté le 19-03-2009 à 09:35:38    

Justement : tu ne le récupère pas, et même si tu l'avais récupéré, tu ne le met pas de le mail.
 
Tu n'es pas développeur. Ok. Si tu veux le devenir, apprends, réfléchit, soit un peu plus logique.
 
Ton topic, c'est pas des erreurs ou oubli de débutant, c'est du manque de logique, de réflexion, de relecture du code, et surtout du manque de compréhension de ce que tu fais. Tu devrais être capable de comprendre en détail chacune des lignes de ton code. Surtout si tu en ais l'auteur. Si ce n'est pas le cas, cherche donc des cours et/ou des tutos sur la programmation !
 
La programmation, spa de la magie ! Si tu n'écris pas le code permettant de faire telle ou telle chose, il ne va pas les faire tout seul !


Message édité par kao98 le 19-03-2009 à 09:37:12

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
Reply

Marsh Posté le 19-03-2009 à 09:37:47    

je le mais pas dans le mail sa je savais et je savais aussi que je ne le recuperer pas et donc s'est pour cela que je suis venu demaner de l'aide ici pour pouvoir trouver la requet qui me le permet

Reply

Marsh Posté le 19-03-2009 à 09:50:23    

Nan mais il ne faut surtout pas permettre de récuperer son mot de passe comme ça, ça veut dire qu'il est stocké en clair :/

Reply

Marsh Posté le 19-03-2009 à 09:52:31    

donc il faudrait que je fasse md5 et donc que je lui envoie un nouveau mot de passe et apres sa serat a lui de le changer

Reply

Marsh Posté le 19-03-2009 à 10:00:33    

max1395 a écrit :

donc il faudrait que je fasse md5 et donc que je lui envoie un nouveau mot de passe et apres sa serat a lui de le changer


 
exactement.
 
Et par pitié, fais un effort sur l'orthographe

Reply

Marsh Posté le 19-03-2009 à 10:04:04    

mais comment je fais ? je séléctionne  le mot de passe dans la bdd  et apres je le mets en md5

Reply

Marsh Posté le 19-03-2009 à 10:11:24    

si tu fais un hash du mot de passe, c'est pour éviter de le stocker en clair dans ta base. comme ca si quelqu'un a un accès interdit à ta base (on ne sait jamais), il n'aura pas les mots de passe en clair.
 
en clair :  
- ton utilisateur envoie le mot de passe en clair
- tu le recois, et tu le hash
- tu compares le hash obtenu avec celui qui est en base. si ca concorde, alors c'est le bon mot de passe
- sinon, c'est pas le bon mot de passe.
 
maintenant, avec cette méthode, tu ne peux pas renvoyer le mot de passe à ton utilisateur s'il l'a oublié, puisque tu n'as pas cette information... tu n'as que le hash.
Alors comme lui renvoyer le hash est assez inutile, et bien s'il perd son mot de passe, tu en créé un de façon aléatoire, tu le hash et tu lui envoie la version claire (que tu gardes le temps de lui envoyer)
 
Ensuite, tu peux le forcer à le changer à la première utilisation.
 
Il y a des milliers de tutos sur le net pour faire ça, dans tous les langages que tu veux.

Reply

Marsh Posté le 22-03-2009 à 16:51:56    

FlorentG a écrit :

Nan mais il ne faut surtout pas permettre de récuperer son mot de passe comme ça, ça veut dire qu'il est stocké en clair :/


 
Tu peux aussi utiliser un systeme de cryptage/decryptage qui permet de ne pas stocker en BDD les mots de passe en clair mais de renvoyer le mot de passe au user.
Bcp moins secure que du md5 ou sha1 mais c'est mieux que le clair.

Reply

Marsh Posté le 22-03-2009 à 16:55:39    

bof
en tout cas je me suis amusé à chercher les mots de passe contenus dans une liste et hashés en MD5, c'est fou mais j'en ai trouvés pas mal.
Donc pour moi ce ne sera plus md5 mais sha.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed