Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: przypomnienie hasła
Forum PHP.pl > Forum > PHP
sigal2006
napisałem skrypt do przypomnienia hasła oto i on

  1. <?
  2. $email_to=$_POST['email_to'];
  3.  
  4. $query=("SELECT 'haslo' FROM uzytkownicy WHERE email ='$email_to'");
  5. $result=mysql_query($query);
  6.  
  7. $count=mysql_num_rows($result);
  8.  
  9. // jeśli $count =1
  10. if($count==1){
  11.  
  12. $rows=mysql_fetch_array($result);
  13. $your_password=$rows['haslo'];
  14.  
  15.  
  16. $to=$email_to;
  17. $subject="Przypomnienie hasła";
  18. $header="from: stronawww <admiin@www.pl>";
  19. $messages.= "Twoje hasło do Bazy \r\n";
  20. $messages.= "Twoje hasło do bazy to $your_password \r\n";
  21. $sentmail = mail($to,$subject,$messages,$header);
  22. }else{
  23. echo "Nie znaleziono takiego adresu e-mail w naszej bazie";
  24. }
  25.  
  26. if($sentmail){
  27. echo "Twoje hasło zostało wysłane na twój adres e-mail.";
  28. }else{
  29. echo "Nie mogliśmy wysłać hasła na Twój adres. Spróbuj jeszcze raz";
  30. }
  31.  
  32. ?>


Wysyła email ale nie podaje hasła hasła mam kodowane w md5 może to ważne.
_Borys_
md5 to hashowanie czyli nie wyciągniesz hasła z hasha bo to jednostronne kodowanie. Jedynie metodą porównawczą możesz odgadnąć hasło ale to trwa wieki.
W celu odzyskania hasła można wysłać na maila hasło resetujące i potem właściciel maila loguje się jednorazowo na stronie i zmienia hasło na nowe.
adbacz
Nie wiem czemu, ale nie rozumiem Twojego problemu. Jakiego hasła nie podaje? Tego w wiadomości którą wysyłasz?

Jeśli hasła w bazie masz hashowane w MD5 to nic nie da jak wyślesz je na meila, użytkownik i tak się nie zaloguje tym hasłem bo to tylko ciąg liter i cyfr, nic nie mający wspólnego z jego prawdziwym hasłem. Wg mnie powinieneś pomyślec nad tym, aby użytkownikowi wysyłać meila z linkiem w którego URLu będzie kod do resetu hasła. Jeśli w bazie przy jego emailu znajdzie się ten sam kod to w tedy wyświetlasz mu formularz do zmiany hasła i to wszystko.

To jest najprostrze i powiedzmy, że bezpieczne.

PS. Jesli CI chodzi o to hasło, które masz zakodowane w DB, że go nie wysyła, to spróbuj napsiać takie coś jako test, żeby sprawdzić co się konkretnie wysyła w tej wiadomości:
  1. <?php
  2. $email_to=$_POST['email_to'];
  3.  
  4. $query=("SELECT 'haslo' FROM uzytkownicy WHERE email ='$email_to'");
  5. $result=mysql_query($query);
  6.  
  7. $count=mysql_num_rows($result);
  8.  
  9. // jeśli $count =1
  10. if($count==1){
  11.  
  12. $rows=mysql_fetch_array($result);
  13. $your_password=$rows['haslo'];
  14.  
  15.  
  16. $to=$email_to;
  17. $subject="Przypomnienie hasła";
  18. $header="from: stronawww <admiin@www.pl>";
  19. $messages.= "Twoje hasło do Bazy \r\n";
  20. $messages.= "Twoje hasło do bazy to $your_password \r\n";
  21. $sentmail = mail($to,$subject,$messages,$header);
  22. }else{
  23. echo "Nie znaleziono takiego adresu e-mail w naszej bazie";
  24. }
  25.  
  26. if($sentmail){
  27. echo "Twoje hasło zostało wysłane na twój adres e-mail. Treść wiadomości brzmi: \n\n $messages";
  28. }else{
  29. echo "Nie mogliśmy wysłać hasła na Twój adres. Spróbuj jeszcze raz";
  30. }
  31.  
  32. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.