![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 0 Dołączył: 16.08.2017 Ostrzeżenie: (0%) ![]() ![]() |
Stworzyłem formularz odzyskiwania hasła który wysyła na skrzynkę e-mailową nowe hasło a w bazie danych dodaje taki sam wpis w tabeli "pass_temp".
Osoba która otrzymuje e-maila klika w link "zmiana hasła" i może odrazu wpisać tymczasowe hasło, nowe i powtórzenie nowego hasła. Wszystko działa jednak jest problem w sytuacji jak dwie osoby w tym samym czasie chciały by odzyskać hasło. Proszę o jakieś sugestie
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 594 Pomógł: 66 Dołączył: 22.02.2008 Skąd: Dublin Ostrzeżenie: (0%) ![]() ![]() |
obawiam sie ze nie qmam.
"Tak jak mówię, problem jest w momencie jak dwie osoby wygenerowały by procedurę odzyskiwania hasła na e-maila bo wtedy kod zwróci dwie osoby" Nie rozumiem tego. Moze wyjasnisz o co ci chodzi. Nie ma znaczenia ile osob generuje taka procedure. Odwolujesz sie do konkretnego rekordu. Nie kumam dlaczego mialoby to kolidowac z innymi userami. Po kiego grzyba user ma podawac tymczasowe haslo i nowe haslo ? Wygeneruj na samym poczatku (rejestracja) jakies haslo -> zapisz do bazy. Czyli login, email, haslo costam co chcesz jeszcze. Oczywiscie powinienes podczas rejestracji zrobic opcje walidacji poprzez email i wtedy dwie tabele z czego jedna na tymczasowe dane i tutaj nalezy dodac pole na TIMESTAMP+czas na walidacje. W mo,mencie kiedy user w ciagu tego czasu kliknie pobieraz dane z linku (jakiestam co chcesz) i teraz laczysz sie z tabelą, pobierasz / sprawdzasz danei i dodajesz do konkretnej ., drugiej tabeli a z tej tymczasowej usuwasz wpis. Jesli uzytkownik nie kliknie w link w przeciagu tego czasu link wygasa -> dodac musisz mechanizm usuniecia automatycznego w momencie sprawdzenia i rowniez gdzies osadzic w innym pliku taki mechanizm. Podczas kazdorazowego wywolania przez userow skrypt bedzie sprawdzal czy czas w tabeli 'tmp' jest mniejszy od aktualnego i jesli tak usuwaj wszystko to co jest 'stare' Teraz uzytkownik ma opcje zmiany hasla. Po zalogowaniu uzyj sesji jako nazwe usera i pobierz dane z tabeli gdzie trzymasz dane: login, haslo, email..... Wtedy WHERE user='$user' (zakladajac ze masz blokade powielania nazw takich samych loginow podczas rejestracji) Wyswietlasz formularz z dwoma polami do wpisania nowego hasla (opcjonalnie pole na stare haslo) i zapisujesz. tyle. Oczywiscie to w duzym skrucie bo trzeba zwalidowac wszystko po kolei. Ten post edytował dublinka 24.07.2019, 16:35:08 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 02:18 |