Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][MYSQL]przypomnienie/zmiana zapomnianego hasła
blackbone
post
Post #1





Grupa: Zarejestrowani
Postów: 3
Pomógł: 0
Dołączył: 4.02.2009
Skąd: Dublin

Ostrzeżenie: (0%)
-----


witam, (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
Czy ktokolwiek wie, jak wymusić zmianę, albo przypomnieć użytkownikowi hasło zapisane w bazie mysql(używając phpmyadmin). Do weryfikacji chcę użyć adresu majlowego, z wysłaniem przypomnianego hasła sobie poradzę, bynajmniej potrzebuję pomocy. (IMG:http://forum.php.pl/style_emoticons/default/rolleyes.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Jeżeli hasło przechowujesz w formie jawnej to możesz zrobić prawdziwe "przypominanie".

1) Formularz w którym podaje się adres email i ew. login
2) Pobierasz hasło z tabeli użytkowników gdzie email = email_z_formularza (jeżeli dodatkowo jest login to jeszcze dodajesz w warunku AND login = login_z_formularza)
3) Na podany adres email wysyłasz hasło (mail" title="Zobacz w manualu PHP" target="_manual)
4) Koniec

A jeżeli chciałbyś zrobić generowanie nowego hasła to sprawa jest nieco bardziej skomplikowana (ale nadal bardzo prosta)
1) Jak wcześniej
2) Jak wcześniej z tym, że pobierasz ID, login, adres-email
3) W tabeli z użytkownikami musisz mieć dodatkową kolumnę, nazwijmy ją verifCode (typu CHAR(32)). Domyślna wartość jaką będzie przyjmowała to NULL.
4) Teraz musisz wygenerować losowy ciąg, który zostanie wysłany na maila w celu weryfikacji
  1. <?php
  2. $verifCode = md5(uniqid(mt_rand(), true));
  3. ?>

5) Kod ten zapisujesz do kolumny verifCode w tabeli użytkowników gdzie id = id_wyciagniete_ze_wczesniejszego_zapytania
6) Do użytkownika wysyłasz maila, w którym znajduje się link w postaci: example.com/pass.php?userid=XX&verif=YYY Gdzie XX to ID użytkownika, a YYY to wygenerowany kod ($verifCode)
7) Tworzysz plik pass.php
8) W nim sprawdzasz czy dla użytkownika o ID = $_GET['userid'] kolumna verifCode = $_GET['verif'].
9) Jeśli nie, nie robisz nic
10) Jeśli tak to rozpoczynasz generowanie hasła
11) Musisz wygenerować nowe hasło. Możesz to zrobić np. przy pomocy
  1. <?php
  2. $chars = 'qwertyuiopasdfghjklzxcvbnm1234567890!@#$%^&*()_+';
  3. $newPass = mb_substr(str_shuffle(str_repeat($chars, 4)), 0, mt_rand(6, 9));
  4. ?>

12) Tak wygenerowane hasło zapisujesz w bazie danych i wyświetlasz je użytkownikowi
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 24.12.2025 - 07:00