Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php]i[mysql]Przypomnienie hasła
Forum PHP.pl > Forum > Przedszkole
Magik125
Witam...
Mam problem.Zrobiłem rejestracje i logowanie na bazie danych i nie wiem jak zrobić przypominania hasła proszę o pomoc.
atomek4
Cześć

jeśli hasło nie jest kodowane w bazie danych to możesz je wysłać na podany przy rejestracji adres e-mail. Jeśli jednak jest kodowane to można wysyłać na @ jakieś wygenerowane losowo a potem (jeśli przewidziałeś taką możliwość) użytkownik sobie je zmieni po zalogowaniu np. na prostsze.

Oczywiście żeby otrzymać przypomnienie użytkownik powinien podać prawidłowy i obecny w bazie danych login/adres e-mail.

Pozdrowienia
strife
Było, trzymaj w bazie wygenerowany jakiś salt w polu użytkownika, a następnie przy próbie przypomnienia hasła wysyłaj do użytkownika mail w takiej formie:

Kod
?action=remember&user=strife&hash=9743a66f914cc249efca164485a19c5c


Potem sprawdzasz w bazie czy do tego usera pasuje ten hash, jeśli tak generujesz mu nowe hasło, albo pokazujesz formularz, w którym sobie może wpisać nowe hasło, proste smile.gif

Pozdrawiam.
Magik125
A jak zrobić dokładnie to co ty mówisz o tym:

?action=remember&user=strife&hash=9743a66f914cc249efca164485a19c5c
PanGuzol
Pytasz się użytkownika o podanie Loginu i maila na którym zarejestriował konto.
Jeśli dane sie zgadzaja to generujesz losowy ciąg znaków

  1. <?php
  2. $token = md5(uniqid(rand(), true));
  3. ?>


Zapisujesz go sobie w bazie danych wraz z jego loginem oraz wysyłasz mu maila z linkiem do skryptu który sprawdzi token i wyświetli mu formularz gdzie wpisze sobie nowe hasło.
strife
Przy rejestracji, generujesz salt i dodajesz w dodatkowym polu w mysql, generujesz przez md5 naprzykład w ten sposób:

  1. <?php
  2. $salt = md5(time());
  3. ?>


Następnie gdy użytkownik zapomni hasła, to wysyłasz mu link na jego adres email, który podał w rejestracji do resetu hasła. Potem sprawdzasz, czy ten salt zgadza się z tym w bazie i na tej podstawie generujesz mu nowe hasło, albo podajesz formularz, aby mógł sobie sam wpisać, czego tutaj nie rozumiesz? smile.gif

Pozdrawiam.
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.