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']; // session မှ user ၏ id
  $query = "SELECT * FROM users WHERE id='$id'";
  
  $res = mysqli_query($link, $query);
  $user = mysqli_fetch_assoc($res);
  
  $hash = $user['password']; // Database မှ ဆားရောထားသော လျှို့ဝှတ်နံပါတ်
  $oldPassword = $_POST['old_password'];
  $newPassword = $_POST['new_password'];
  
  // Database မှ hash နှင့် ရိုက်ထည့်ထားသော ယခင် လျှို့ဝှတ်နံပါတ် ကိုက်ညီမှုရှိမရှိ စစ်ဆေးခြင်း
  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

ဖော်ပြပါ လျှို့ဝှတ်နံပါတ် ပြောင်းလဲခြင်းကို အကောင်အထည်ဖော်ပါ။