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 {
// эски пароль туура эмес киргизилди, билдирүү чыгарабыз
}
?>
Сүрөттөлгөн пароль алмаштырууну ишке ашырыңыз.