In questo articolo “Le sessioni e i cookies in PHP” definiamo il concetto di cookies e di sessione. Spiego la differenza tra i due concetti e il loro impiego. Al termine dell’articolo vediamo anche un esempio pratico
Indice dei contenuti
Panoramica sull’uso delle Sessioni e dei Cookie in PHP
1. Introduzione
Quando si sviluppano applicazioni web, è fondamentale mantenere lo stato dell’utente tra diverse pagine. HTTP è un protocollo stateless, il che significa che ogni richiesta inviata al server è indipendente dalle precedenti. Per superare questa limitazione, si usano sessioni e cookie, che permettono di conservare informazioni relative a un utente tra diverse richieste HTTP.
2. Differenze tra Sessioni e Cookie

Cookie in PHP
I cookie vengono memorizzati nel browser dell’utente e possono essere utilizzati per conservare dati tra più visite al sito.
Creazione di un Cookie
Per impostare un cookie in PHP, si utilizza la funzione setcookie()
, che ha la seguente sintassi:
setcookie(nome, valore, scadenza, percorso, dominio, sicurezza, httpOnly);

Esempio di creazione di un cookie valido per un’ora:
setcookie("utente", "MarioRossi", time() + 3600, "/");
Lettura di un Cookie
I cookie vengono recuperati utilizzando la variabile superglobale $_COOKIE
:
if (isset($_COOKIE["utente"])) {
echo "Il valore del cookie 'utente' è: " . $_COOKIE["utente"];
}
Eliminazione di un Cookie
Per eliminare un cookie, si imposta una data di scadenza nel passato:
setcookie("utente", "", time() - 3600, "/");
Sessioni in PHP
Le sessioni permettono di memorizzare informazioni sugli utenti sul server. A differenza dei cookie, i dati delle sessioni non sono memorizzati nel browser dell’utente.
Avvio di una Sessione
Per avviare una sessione in PHP, si usa session_start()
. Questo permette di accedere o creare una sessione:
session_start();
Esempio di assegnazione di una variabile di sessione:
session_start();
$_SESSION["username"] = "MarioRossi";
Recupero dei Dati della Sessione
Per ottenere il valore di una variabile di sessione si utilizza la variabile superglobale $_SESSION:
session_start();
if (isset($_SESSION["username"])) {
echo "Benvenuto, " . $_SESSION["username"];
}
Distruzione della Sessione
Per terminare una sessione e rimuovere tutte le variabili associate:
session_start();
session_unset(); // Rimuove tutte le variabili di sessione
session_destroy(); // Distrugge la sessione
Esempio Pratico: Login con Sessioni e Cookie
Vediamo ora un esempio pratico di un sistema di login che utilizza sessioni e cookie.
Pagina di Login (login.php
)
<?php
session_start();
if ($_SERVER["REQUEST_METHOD"] = = "POST") {
$username = $_POST["username"];
$password = $_POST["password"];
// Simuliamo un login corretto (username: admin, password: 12345)
if ($username = = = "admin" && $password = = = "12345") {
$_SESSION["username"] = $username;
// Se l'utente ha selezionato "Ricordami", creiamo un cookie
if (isset($_POST["remember"])) {
setcookie("username", $username, time() + (86400 * 30), "/"); // Cookie valido per 30 giorni
}
header("Location: dashboard.php");
exit();
} else {
echo "Credenziali errate.";
}
}
?>
<form method="post">
Username: <input type="text" name="username" required><br>
Password: <input type="password" name="password" required><br>
<input type="checkbox" name="remember"> Ricordami<br>
<input type="submit" value="Login">
</form>
Pagina Protetta (dashboard.php
)
<?php
session_start();
// Se la sessione non è attiva, proviamo a recuperare il valore dal cookie
if (!isset($_SESSION["username"]) && isset($_COOKIE["username"])) {
$_SESSION["username"] = $_COOKIE["username"];
}
// Se l'utente non è autenticato, lo rimandiamo al login
if (!isset($_SESSION["username"])) {
header("Location: login.php");
exit();
}
echo "Benvenuto, " . $_SESSION["username"];
?>
<a href="logout.php">Logout</a>
Logout (logout.php
)
<?php
session_start();
session_unset();
session_destroy();
// Eliminazione del cookie
setcookie("username", "", time() - 3600, "/");
header("Location: login.php");
exit();
?>
Conclusioni
- Le sessioni sono ideali per mantenere le informazioni dell’utente durante una sessione attiva, specialmente per autenticazione e dati sensibili.
- I cookie sono utili per conservare dati per un periodo prolungato e possono essere utilizzati per la funzione “Ricordami” nei login.
- Combinarli può migliorare l’esperienza utente, garantendo sia sicurezza che persistenza dei dati.
Nella sezione DOWNLOAD o direttamente da qui: https://profgiagnotti.it/download/4860/?tmstv=1744539632 è possibile scaricare gli script descritti nell’articolo
Lascia un commento