⊗ppPmAuPCh 429 of 447 menu

Slaptažodžio keitimas PHP

Slaptažodžio keitimo negalima tiesiog atlikti asmeniniame kabinete. Esmė ta, kad vartotojas gali palikti savo kompiuterį be priežiūros (pavyzdžiui, ofise), būdamas autorizuotas mūsų svetainėje. Tokiu atveju, jei leistume tiesiog keisti slaptažodį, tai piktavalis-nekenčiantis galės pakeisti slaptažodį į kitą, kas, žinoma, yra labai blogai.

Būtina padaryti taip, kad slaptažodžio pakeitimas į naują reikalautų seno slaptažodžio įvedimo.

Įgyvendinkime puslapį changePassword.php, į kurį patekęs vartotojas pamatys formą su dviem įvesties laukais - į pirmąjį jis turės įvesti savo seną slaptažodį, o į antrąjį - naują:

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

Paspaudus siuntimo mygtuką mes turime atlikti šiuos veiksmus:

<?php $id = $_SESSION['id']; // vartotojo id iš sesijos $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // druskuotas slaptažodis iš DB $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Tikriname atitiktį tarp hash'o iš duomenų bazės ir įvesto seno slaptažodžio 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 { // senas slaptažodis įvestas neteisingai, išvesime pranešimą } ?>

Įgyvendinkite aprašytą slaptažodžio keitimą.

Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti