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 sessioneEsempio 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