PHP-də parolun dəyişdirilməsi
Parolun dəyişdirilməsini sadəcə şəxsi kabinetdə etmək olmaz. Məsələ ondadır ki, istifadəçi kompüterinə nəzarətsiz buraxa bilər (məsələn, ofisdə), saytımızda avtorizasiya olmuş halda. Bu halda, əgər sadəcə parolu dəyişməyə icazə versək, onda pis niyyətli şəxs parolu başqası ilə dəyişə bilər, bu, əlbəttə ki, çox pisdir.
Parolun yenisi ilə dəyişdirilməsinin köhnə parolun daxil edilməsini tələb etməsi üçün təşkil etmək lazımdır.
Gəlin changePassword.php səhifəsini realizasiya edək,
istifadəçi bu səhifəyə daxil olanda iki inputlu form
görəcək - birinciyə öz köhnə parolunu,
ikinciyə isə yeni parolu daxil etməlidir:
<form action="" method="POST">
<input name="old_password">
<input name="new_password">
<input type="submit" name="submit">
</form>
Göndər düyməsinə kliklədikdə biz aşağıdakıları etməliyik:
<?php
$id = $_SESSION['id']; // sessiyadan istifadəçi id-si
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
$hash = $user['password']; // DB-dən duzlu parol
$oldPassword = $_POST['old_password'];
$newPassword = $_POST['new_password'];
// DB-dən gələn hash-in daxil edilən köhnə parolla uyğunluğunu yoxlayırıq
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 {
// köhnə parol səhv daxil edilib, mesaj çıxadaq
}
?>
Təsvir olunan parol dəyişməni realizasiya edin.