Drepturi de acces în PHP

Cel mai adesea, pe un site nu există un singur tip de utilizator, ci mai mulți, și toți au drepturi diferite. De exemplu, puteți avea utilizatori obișnuiți și administratori. Administratorii vor avea mai multe drepturi decât utilizatorii obișnuiți.

Cum se implementează acest lucru: vom crea în tabelul cu utilizatori un câmp suplimentar, îl vom numi status și pentru fiecare utilizator vom stoca statutul său: să fie pentru administratori cuvântul 'admin', iar pentru utilizatorii obișnuiți - cuvântul 'user'.

Acum, la autentificarea utilizatorului, în $_SESSION['status'] vom scrie statutul utilizatorului din baza de date:

html<?php
  if (password_verify($_POST['password'], $hash)) {
    $_SESSION['auth'] = true;
    $_SESSION['id'] = $user['id'];
    $_SESSION['status'] = $user['status']; // scriem statutul
  }
?>

Să presupunem acum că avem o pagină pe site la care au acces doar administratorii. Să facem astfel încât doar administratorii să vadă conținutul acestei pagini:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // afișăm conținutul paginii doar administratorilor
  }
?>