Berechtigungen in PHP

Meistens gibt es auf einer Website nicht nur einen Benutzertyp, sondern mehrere, und alle haben unterschiedliche Berechtigungen. Zum Beispiel könnte es normale Benutzer und Administratoren geben. Administratoren werden mehr Rechte haben als normale Benutzer.

Wie wird das implementiert: Wir erstellen in der Tabelle mit den Benutzern ein weiteres Feld, nennen wir es status, und für jeden Benutzer speichern wir seinen Status: Für Administratoren sei es das Wort 'admin', und für normale Benutzer - das Wort 'user'.

Jetzt schreiben wir bei der Autorisierung des Benutzers in $_SESSION['status'] den Status des Benutzers aus der Datenbank:

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

Nehmen wir nun an, es gibt eine Seite auf unserer Website, auf die nur Administratoren Zugriff haben. Sorgen wir dafür, dass nur Administratoren den Inhalt dieser Seite sehen:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // Inhalt der Seite nur Administratoren anzeigen
  }
?>