Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Skrypt zmiany hasła
Forum PHP.pl > Forum > Przedszkole
Mateostin
Witam. kombinuje już od pewnego czasu i nic mi nie wychodzi... potrzebuje skryptu do zmiany hasła. Logowanie zrobiłem za pomocą sesji

na stronie umieszczam
  1. <?php session_start();
  2. require_once('connect.php');
  3. ?>
  4.  
  5. <div class="logowanie">
  6. <?php
  7. if (!isset($_SESSION['auth']))
  8. $_SESSION['auth'] = false;
  9. if ($_SESSION['auth'] == TRUE) {
  10. } else {
  11. echo '<meta http-equiv="refresh" content="1; URL=index.php">';
  12. echo '<p style="padding-top:10px;color:red";><strong>Próba nieautoryzowanego dostępu...</strong><br />trwa przenoszenie...</p>';
  13. }
  14.  
  15. ?></div>


w bazie danych posiadam Kolumny: id_user, login, password

tylko nie wiem jak pobrać id i jak zrobić żeby sprawdziło stare hasło i zaktualizowało. za pomoc byłbym bardzo wdzięczny. z góry dziękuje smile.gif
viking
Hasło powinno być zakodowane jednokierunkowo czyli nie powinno być możliwości jego odzyskania. Zatem zmiana hasła sprowadza się do wygenerowania nowego dla danego użytkownika. A skoro masz tylko login i hasło to nie sprawdzisz bez poprawnego zalogowania czy użytkownik ma do zmiany prawo.
1. Jeśli jest zalogowany to tworzysz nowy formularz i później update najlepiej z http://php.net/manual/pl/function.password-hash.php
2. Jeśli nie jest zalogowany to powinien dostać potwierdzenie na maila. Po kliknięciu w link patrz 1.
Mateostin
OK, ja chce prosty formularz natomiast jak zrobić żeby sprawdzało mi czy haslo stare jest dobre jezeli tak zeby robilo update i kodowalo md5

viking
$_SESSION['auth'] == TRUE oznacza zalogowanego. Robisz mu zatem formularz hasło/powtórz hasło i poźniej
UPDATE users SET password = MD5(?) WHERE id_user = ?
Pyton_000
Broń Cię panie @viking.

Aby zmienić hasło powinno się podawać stare (mowa o świadomym zmienianiu hasła przy założeniu że pamięta się stare).
Podając stare hasło oraz nowe 2x(potwierdzenie zgodności, czy nie ma literówki itd) szukasz rekordu login == $login && password == $password.
Dopiero jak został znaleziony rekord to zmieniasz.

Nie można polegać na tym że user jest zalogowany, bo to bardzo niebezpieczne.


Odzyskiwanie hasła to inny temat, tam generujesz hash, wysyłasz go na mejla a potem wchodzi na odpowiednią stronę z tym hashem. Jeśli się zgadza to podajesz nowe hasło i zapisujesz w BD.
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.