PHP-de paroly üýtgetmek
Paroly üýtgetmek diňe şahsy kabinetde edilip bolmaýar. Aslynda, ulanyjy kompýuterini gözegçisiz goýup biler (meselem, ofisde), sahypamyzda şahsyýetnamasy açyk bolsa. Bu ýagdaýda, eger paroly ýönekeý üýtgetmäge rugsat berilse, ýaman niýetli hödügsiz adam başga bir parol üýtgedip biler, bu, elbetde, örän erbet bolardy.
Paroly täze parola üýtgetmek üçin köne parolyň girizilmegini talap edýän etmek zerur.
Geliň, changePassword.php sahypasyny amala aşyralyň,
ulanyjy ýüklenende iki girelge görer - birinjisine ol köne parolyny, ikinjisine bolsa täze parolyny girizmeli:
<form action="" method="POST">
<input name="old_password">
<input name="new_password">
<input type="submit" name="submit">
</form>
Iber düwmesine basanda şuny ýerine ýetirmeli:
<?php
$id = $_SESSION['id']; // Sessiýadan ulanyjynyň id-si
$query = "SELECT * FROM users WHERE id='$id'";
$res = mysqli_query($link, $query);
$user = mysqli_fetch_assoc($res);
$hash = $user['password']; // DB-den duzly parol
$oldPassword = $_POST['old_password'];
$newPassword = $_POST['new_password'];
// Bazadan gelen heşiň girizilen köne parola gabat gelýändigini barlaýarys
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öne parol nädogry girizildi, habar görkezeris
}
?>
Beýan edilen parol üýtgetmek funksiýasyny amala aşyryň.