สิทธิการเข้าถึงใน PHP

บ่อยครั้งที่เว็บไซต์ไม่ได้มีผู้ใช้เพียงประเภทเดียว แต่มีหลายประเภทและพวกเขาทุกคนมีสิทธิที่แตกต่างกัน ตัวอย่างเช่น คุณอาจมีผู้ใช้ทั่วไป และผู้ดูแลระบบ ผู้ดูแลระบบจะมีสิทธิ์มากกว่า กว่าผู้ใช้ทั่วไป

วิธีที่สิ่งนี้ถูกนำไปใช้: สร้างขึ้นมาใน ตารางผู้ใช้มีอีกฟิลด์หนึ่ง เรียกมันว่า status และสำหรับแต่ละผู้ใช้ เราจะเก็บสถานะของเขา: สำหรับผู้ดูแลระบบ ให้เป็นคำว่า 'admin' และสำหรับผู้ใช้ทั่วไป - คำว่า 'user'

ตอนนี้เมื่อผู้ใช้เข้าสู่ระบบใน $_SESSION['status'] เราจะเขียนสถานะของผู้ใช้จากฐานข้อมูล:

html<?php
  if (password_verify($_POST['password'], $hash)) {
    $_SESSION['auth'] = true;
    $_SESSION['id'] = $user['id'];
    $_SESSION['status'] = $user['status']; // บันทึกสถานะ
  }
?>

สมมติว่าตอนนี้บนเว็บไซต์ของเรามีบางหน้า ที่อนุญาตให้เข้าถึงได้เฉพาะผู้ดูแลระบบเท่านั้น มาจัดการให้มีเพียงผู้ดูแลระบบเท่านั้นที่เห็นเนื้อหา ของหน้านี้:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // แสดงเนื้อหาหน้าเฉพาะผู้ดูแลระบบ
  }
?>