PHPda parolni o'zgartirish
Parolni o'zgartirishni oddiygina shaxsiy kabinetda qilish mumkin emas. Gap shundaki, foydalanuvchi kompyuterini qarovsiz qoldirishi mumkin (masalan, idora da), bizning saytimizda avtorizatsiyadan o'tgan holatda. Bu holda, agar oddiygina parolni o'zgartirishga ruxsat bersak, undaqi yomon niyatli buzg'unchi boshqa parolga o'zgartirishi mumkin, bu, albatta, juda yomon.
Parolni yangisiga o'zgartirish uchun eski parolni kiritish talab qilinishi kerak.
Keling, changePassword.php sahifasini amalga oshiramiz,
unga kirgan foydalanuvchi ikta kiritish maydoni bilan shaklni
ko'radi - birinchisiga u
o'zining eski parolini, ikkinchisiga esa yangisini kiritishi kerak:
<form action="" method="POST">
<input name="old_password">
<input name="new_password">
<input type="submit" name="submit">
</form>
Yuborish tugmasini bosganimizda biz quyidagilarni qilishimiz kerak:
<?php
$id = $_SESSION['id']; // sessiyadagi foydalanuvchi id si
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
$hash = $user['password']; // BD dagi tuzlangan parol
$oldPassword = $_POST['old_password'];
$newPassword = $_POST['new_password'];
// Bazadagi xesh va kiritilgan eski parolning mosligini tekshiramiz
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 {
// eski parol noto'g'ri kiritilgan, xabarni chiqaramiz
}
?>
Tasvirlangan parolni o'zgartirishni amalga oshiring.