⊗ppPmAuPCh 429 of 447 menu

Смяна на парола в PHP

Смяната на парола не може просто да се направи в личния кабинет. Работата е там, че потребителят може да остави своя компютър без надзор (например, в офиса), като е автентикиран в нашия уебсайт. В този случай, ако се разреши просто да се сменя паролата, то злонамерен потребител ще може да смени паролата на друга, което, разбира се, е много лошо.

Необходимо е да се направи така, че смяната на парола на нова да изисква въвеждане на старата парола.

Нека реализираме страница changePassword.php, като влезете в която потребителят ще види форма с два инпут полета - в първото той трябва да въведе старата си парола, а във второто - новата:

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

При натискане на бутона за изпращане трябва да направим следното:

<?php $id = $_SESSION['id']; // id на потребителя от сесията $query = "SELECT * FROM users WHERE id='$id'"; $res = mysqli_query($link, $query); $user = mysqli_fetch_assoc($res); $hash = $user['password']; // солена парола от БД $oldPassword = $_POST['old_password']; $newPassword = $_POST['new_password']; // Проверяваме съответствието на хеша от базата с въведената стара парола 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 { // старата парола е въведена неправилно, ще изведем съобщение } ?>

Реализирайте описаната смяна на парола.

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