ဒေတာဘေ့စ် ပုံမှန်သတ်မှတ်ခြင်း

လက်ရှိတွင် ကျွန်ုပ်တို့၏ အသုံးပြုသူများ၏ အနေအထားကို အသုံးပြုသူများကိုယ်တိုင် သိမ်းဆည်းထားသည့် ဇယားထဲတွင်ပင် သိမ်းဆည်းထားပါသည်။ သို့သော် ၎င်းမှာ မှားယွင်းနေပါသည် - ကျွန်ုပ်တို့သည် ပုံမှန်မသတ်မှတ်ရသေးသော ဇယားတစ်ခုကို ရရှိနေပါသည်၊ အဘယ့်ကြောင့်ဆိုသော် 'user' နှင့် 'admin' စကားလုံးများသည် အကြိမ်များစွာ ပြန်လည်ဖြစ်ပေါ်နေသောကြောင့်ဖြစ်သည်။

ပုံမှန်သတ်မှတ်ခြင်းကို ဆောင်ရွက်ရန်လိုအပ်ပါသည် - ကျွန်ုပ်တို့၏ အနေအထားများကို သီးသန့်ဇယား statuses တစ်ခုသို့ ထုတ်နှုတ်ပါမည်။

id name
1 user
2 admin

ဇယား users တွင် ကော်လံတစ်ခုဖြစ်သည့် status_id ကို ပြုလုပ်ပါမည်။ ယခု မှတ်ပုံတင်ခြင်းတွင် ကော်လံ status_id ထဲသို့ ဇယား statuses မှ အနေအထား၏ id ကို ရေးသွင်းပါမည်။

html<?php
  $query = "INSERT INTO users
    SET login='$login', password='$password', status_id='1'";
?>

အရှုပ်ထွေးဆုံးသော ပြောင်းလဲမှုများသည် အော်သော်ရေးဇေးရှင်းတွင် ဖြစ်ပေါ်လိမ့်မည်။ အသုံးပြုသူ၏ အနေအထားကို ရယူရန် LEFT JOIN ကို ဆောင်ရွက်ရန်လိုအပ်ပါမည်။

html<?php
  $login = $_POST['login'];
  
  // လော့ဂ်အင်အပေါ် အခြေခံ၍ အသုံးပြုသူကို ရယူပြီး အနေအထားနှင့် ပေါင်းစပ်ပါ။
  $query = "SELECT users.*, statuses.name as status FROM users
    LEFT JOIN statuses
  ON users.status_id=statuses.id WHERE login='$login'";
  
  $res = mysqli_query($link, $query);
  $user = mysqli_fetch_assoc($res);
  
  if (!empty($user)) {
    $hash = $user['password'];
    
    if (password_verify($_POST['password'], $hash)) {
      $_SESSION['auth'] = true;
      $_SESSION['status'] = $user['status']; // အနေအထား
    } else {
      
    }
  } else {
    
  }
?>
Задание 1

သီအိုရီတွင် ဖော်ပြထားသည့်အတိုင်း သင်၏ အော်သော်ရေးဇေးရှင်းနှင့် မှတ်ပုံတင်ခြင်းကို ပြန်လည်ပြုပြင်ပါ။

Задание 2

အက်ဒ်မင်စာမျက်နှာ၏ လုပ်ဆောင်ချက်များ (အသုံးပြုသူများ၏ အနေအထားများကို ပြသခြင်း၊ အနေအထားများကို ပြောင်းလဲခြင်း စသည်တို့) တွင် ပြောင်းလဲမှုများ ပြုလုပ်ပါ။