⊗ppPmAuPCh 429 of 447 menu

Zmiana hasła w PHP

Zmiany hasła nie można po prostu zrobić w koncie osobistym. Chodzi o to, że użytkownik może zostawić swój komputer bez nadzoru (na przykład w biurze), będąc zalogowanym na naszej stronie. W tym przypadku, jeśli pozwolić po prostu zmieniać hasło, to złośliwy intruz-nieżyczliwiec będzie mógł zmienić hasło na inne, co, oczywiście, bardzo źle.

Należy zrobić tak, aby zmiana hasła na nowe wymagała wprowadzenia starego hasła.

Zaimplementujmy stronę changePassword.php, po wejściu na którą użytkownik zobaczy formularz z dwoma polami input - w pierwsze będzie musiał wpisać swoje stare hasło, a w drugie - nowe:

<form action="" method="POST"> <input name="old_password"> <input name="new_password"> <input type="submit" name="submit"> </form>

Po naciśnięciu przycisku wysyłki powinniśmy zrobić następujące:

<?php $id = $_SESSION['id']; // id użytkownika z sesji $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // zasolone hasło z bazy danych $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Sprawdzamy zgodność hasha z bazy z wprowadzonym starym hasłem if (password_verify($oldPassword, $hash)) { $newPasswordHash = password_hash($newPassword, PASSWORD_DEFAULT); $query = "UPDATE users SET password='$newPasswordHash' WHERE id='$id'"; mysqli_query($link, $query); } else { // stare hasło wprowadzone nieprawidłowo, wyświetlimy komunikat } ?>

Zaimplementuj opisaną zmianę hasła.

Polski
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wykorzystujemy pliki cookie do działania strony, analizy i personalizacji. Przetwarzanie danych odbywa się zgodnie z Polityką prywatności.
zaakceptuj wszystkie dostosuj odrzuć