PHP: Sessioni
Sessioni in PHP
Le sessioni permettono di memorizzare informazioni sul server e di associarle a un utente tramite un identificatore unico. Sono fondamentali per gestire login, carrelli e preferenze senza dipendere dai cookie.
Introduzione alle sessioni
Le sessioni sono uno strumento di PHP per mantenere i dati tra le diverse richieste di un utente. A differenza dei cookie, i dati delle sessioni vengono salvati lato server e associati all’utente tramite un identificatore di sessione (session ID), che viene solitamente trasmesso all’interno del cookie PHPSESSID.
Avvio di una sessione
Per utilizzare le sessioni è necessario chiamare session_start() all’inizio dello script, prima di qualsiasi output HTML.
Codice Esempio: avvio e creazione variabili di sessione

<?php
session_start();
// Creo variabili di sessione
$_SESSION["utente"] = "Mario";
$_SESSION["ruolo"] = "admin";
echo "Variabili di sessione create.";
?>
<!-- Output nel browser:
Variabili di sessione create.
-->
Lettura delle variabili di sessione
Una volta impostate, le variabili di sessione possono essere lette in qualunque pagina che utilizzi session_start().
Codice Esempio: lettura variabili di sessione

<?php
session_start();
echo "Utente: " . $_SESSION["utente"] . "<br>";
echo "Ruolo: " . $_SESSION["ruolo"];
?>
<!-- Output nel browser:
Utente: Mario
Ruolo: admin
-->
Eliminazione di variabili e chiusura della sessione
Si possono eliminare singole variabili di sessione con unset() oppure distruggere l’intera sessione con session_destroy().
Codice Esempio: distruzione sessione

<?php
session_start();
// Elimino una variabile specifica
unset($_SESSION["ruolo"]);
// Distruggo tutta la sessione
session_destroy();
echo "Sessione terminata.";
?>
<!-- Output nel browser:
Sessione terminata.
-->
Tabella riassuntiva funzioni sessioni
Funzione | Descrizione | Esempio |
---|---|---|
session_start() | Avvia la sessione o la riprende se già esistente | session_start() |
$_SESSION | Array associativo che contiene le variabili di sessione | $_SESSION["utente"] |
unset() | Elimina una variabile specifica della sessione | unset($_SESSION["ruolo"]) |
session_destroy() | Distrugge completamente la sessione | session_destroy() |
Considerazioni
Le sessioni sono più sicure dei cookie perché i dati restano sul server, ma richiedono attenzione nella configurazione e gestione del session ID per evitare attacchi di hijacking.