Գաղտնաբառի փոփոխում PHP-ում

Գաղտնաբառի փոփոխումը պարզապես հնարավոր չէ կատարել անձնական գրասենյակում: Բանն այն է, որ օգտագործողը կարող է թողնել իր համակարգիչը առանց հսկողության (օրինակ, գրասենյակում), մինչդեռ լինելով մեր կայքում նույնականացված: Այս դեպքում, եթե թույլ տրվի պարզապես փոխել գաղտնաբառը, ապա չարամիտ անձը-վատ ցանկացողը կկարողանա գաղտնաբառը փոխել մեկ այլի, ինչը, իհարկե, շատ վատ է:

Անհրաժեշտ է անել այնպես, որ գաղտնաբառի փոփոխումը նորի պահանջի հին գաղտնաբառի մուտքագրում:

Եկեք իրականացնենք changePassword.php էջը, մտնելով որի վրա օգտագործողը կտեսնի ձև երկու դաշտերով - առաջինում նա պետք է մուտքագրի իր հին գաղտնաբառը, իսկ երկրորդում` նորը.

html<form action="" method="POST">
  <input name="old_password">
  <input name="new_password">
  <input type="submit" name="submit">
</form>

Ուղարկման կոճակը սեղմելու դեպքում մենք պետք է անենք հետևյալը.

html<?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 {
    // հին գաղտնաբառը սխալ է մուտքագրվել, ցույց կտանք հաղորդագրություն
  }
?>
Задание 1

Իրականացրեք նկարագրված գաղտնաբառի փոփոխումը: