PHP တွင် Session ဖြင့် အာကာသို (Authorization)

ကျွန်ုပ်တို့၏ အာကာသို စနစ်သည် ဤသို့အလုပ်လုပ်သင့်သည် - ဝဘ်ဆိုဒ်တွင် အာကာသို ဝင်လိုသူ သုံးစွဲသူသည် login.php စာမျက်နှာသို့ သွားပြီး မှန်ကန်သော လော့ဂ်အင်နှင့် စကားဝှက်ကို ထည့်သွင်းကာ ထို့နောက် ဝဘ်ဆိုဒ်၏ အခြားစာမျက်နှာများကို အာကာသို ဝင်ပြီးသူအဖြစ် လှည့်လည်ကြည့်ရှုနိုင်သည်။

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

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

အာကာသို အမှတ်အသားကို session ကိန်းရင်း $_SESSION['auth'] ထဲတွင် သိမ်းဆည်းပါမည် - အကယ်၍ ထဲတွင် true ရေးထားပါက သုံးစွဲသူသည် အာကာသို ဝင်ထားပြီး null ဖြစ်ပါက အာကာသို မဝင်ရသေးပါ။

ကျွန်ုပ်တို့၏ ကုဒ်အတွင်းသို့ သက်ဆိုင်ရာ တည်းဖြတ်မှုကို ပြုလုပ်ကြပါစို့:

html<?php
  session_start();
  
  if (!empty($_POST['password']) and !empty($_POST['login'])) {
    $login = $_POST['login'];
    $password = $_POST['password'];
    
    $query = "SELECT * FROM users WHERE login='$login' AND password='$password'";
    $res = mysqli_query($link, $query);
    $user = mysqli_fetch_assoc($res);
    
    if (!empty($user)) {
      $_SESSION['auth'] = true;
    } else {
      // လော့ဂ်အင်သို့မဟုတ် စကားဝှက်ကို မှားယွင်းစွာထည့်သွင်းခဲ့သည်
    }
  }
?>

ယခုအခါ ဝဘ်ဆိုဒ်၏ မည်သည့်စာမျက်နှာတွင်မဆို ဤကဲ့သို့သောနည်းဖြင့် သုံးစွဲသူ အာကာသို ဝင်ထားမဝင်ထား စစ်ဆေးနိုင်ပါသည်:

html<?php
  if (!empty($_SESSION['auth'])) {
    
  }
?>

မည်သည့်စာမျက်နှာ၏ စာသားကိုမဆို အာကာသို မဝင်ရသေးသော သုံးစွဲသူအတွက် လုံးဝပိတ်ထားနိုင်ပါသည်:

html<?php if (!empty($_SESSION['auth'])): ?>
  <!DOCTYPE html>
  <html>
    <head>
      
    </head>
    <body>
      <p>အာကာသို ဝင်ထားသော သုံးစွဲသူအတွက်သာ စာသား</p>
    </body>
  </html>
<?php else: ?>
  <p>ကျေးဇူးပြု၍ အာကာသို ဝင်ပါ</p>
<?php endif; ?>

စာမျက်နှာ၏ တစ်စိတ်တစ်ပိုင်းကိုသာ ပိတ်ထားနိုင်ပါသည်:

html<!DOCTYPE html>
<html>
  <head>
    
  </head>
  <body>
    <p>မည်သည့်သုံးစွဲသူအတွက်မဆို စာသား</p>
    <?php
      if (!empty($_SESSION['auth'])) {
        echo 'အာကာသို ဝင်ထားသော သုံးစွဲသူအတွက်သာ စာသား';
      }
    ?>
    <p>မည်သည့်သုံးစွဲသူအတွက်မဆို စာသား</p>
  </body>
</html>
Задание 1

�ျွန်ုပ်တို့၏ ဝဘ်ဆိုဒ်တွင် login.php စာမျက်နှာအပြင် 1.php, 2.php နှင့် 3.php စာမျက်နှာများ ရှိသည်ဆိုပါစို့။ �စာမျက်နှာများကို အာကာသို ဝင်ထားသော သုံးစွဲသူသာ ဝင်ရောက်ကြည့်ရှုနိုင်စေရန် ပြုလုပ်ပါ။

Задание 2

ကျွန်ုပ်တို့၏ ဝဘ်ဆိုဒ်တွင် index.php စာမျက်နှာလည်း ရှိသည်ဆိုပါစို့။ �စာမျက်နှာ၏ တစ်စိတ်တစ်ပိုင်းကို သုံးစွဲသူအားလုံးအတွက် ဖွင့်ထားပြီး ကျန်တစ်ပိုင်းကို အာကာသို ဝင်ထားသော သုံးစွဲသူများအတွက်သာ ဖွင့်ထားစေရန် ပြုလုပ်ပါ။

Задание 3

အာကာသို အောင်မြင်စွာ ဝင်ပါက session ထဲသို့ သုံးစွဲသူ၏ လော့ဂ်အင်ကိုလည်း �ေးသွင်းထားစေရန် သင့်ကုဒ်ကို ပြင်ဆင်ပါ။

Задание 4

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