⊗ppPmAuPCh 429 of 447 menu

Jelszó megváltoztatása PHP-ban

A jelszó megváltoztatása nem egyszerűen megoldható a személyes fiókban. Az a helyzet, hogy a felhasználó otthagyhatja a számítógépét őrizetlenül (például az irodában), miközben be van jelentkezve az oldalunkra. Ebben az esetben, ha egyszerűen lehetővé tesszük a jelszó megváltoztatását, akkor egy rosszindulatú támadó képes lesz megváltoztatni a jelszót egy másikra, ami természetesen nagyon rossz.

Úgy kell eljárni, hogy az új jelszóra való váltás a régi jelszó megadását igényelje.

Valósítsuk meg a changePassword.php oldalt, ahova belépve a felhasználó egy űrlapot fog látni két beviteli mezővel - az elsőbe a rég jelszavát kell beírnia, a másodikba pedig az újat:

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

A küldés gomb megnyomásakor a következőt kell tennünk:

<?php $id = $_SESSION['id']; // a felhasználó id-ja a session-ből $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // a sózott jelszó az adatbázisból $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Ellenőrizzük az adatbázisból származó hash és a bevitt régi jelszó egyezését 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 { // a régi jelszó helytelenül lett megadva, jelenítsünk meg üzenetet } ?>

Valósítsa meg az ismertetett jelszómódosítást.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás