Autorizzazioni in PHP

Spesso su un sito web non c'è un solo tipo di utente, ma diversi, e ognuno ha autorizzazioni differenti. Ad esempio, potresti avere utenti normali e amministratori. Gli amministratori avranno più autorizzazioni rispetto agli utenti normali.

Ecco come si implementa: creiamo un altro campo nella tabella degli utenti, chiamiamolo status e per ogni utente memorizzeremo il suo stato: ad esempio, per gli amministratori la parola 'admin', mentre per gli utenti normali - la parola 'user'.

Ora, durante l'autenticazione dell'utente, in $_SESSION['status'] scriveremo lo stato dell'utente dal database:

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

Supponiamo ora che sul nostro sito ci sia una pagina a cui hanno accesso solo gli amministratori. Facciamo in modo che solo gli amministratori vedano il contenuto di questa pagina:

html<?php
  if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
    // mostriamo il contenuto della pagina solo agli amministratori
  }
?>