პაროლის შეცვლა 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 {
// ძველი პაროლი არასწორადაა შეყვანილი, გამოვიტანოთ შეტყობინება
}
?>
განახორციელეთ აღწერილი პაროლის შეცვლა.