PHP

COOKIE

Spiegazione dettagliata della variabile superglobale $_COOKIE in PHP con esempi pratici e laboratorio guidato.

La variabile superglobale $_COOKIE in PHP è un array associativo che contiene tutti i cookie inviati al server dal browser dell’utente.

I cookie sono piccoli file di testo che il server invia al client e che vengono memorizzati nel browser. Alla successiva richiesta HTTP, il browser rimanda automaticamente al server i cookie precedentemente salvati.

🔹 Come funziona un cookie

  • Il cookie viene impostato dal server con la funzione setcookie().
  • Il browser salva il cookie localmente.
  • Ad ogni richiesta successiva verso lo stesso dominio, il cookie viene inviato nel campo HTTP_COOKIE dell’intestazione.

🔹 Sintassi della funzione setcookie()


setcookie(nome, valore, scadenza, percorso, dominio, sicuro, httponly);

🔹 Parametri principali

ParametroDescrizioneEsempio
nomeIl nome del cookie."utente"
valoreIl contenuto memorizzato nel cookie."Mario"
scadenzaTimestamp UNIX di scadenza (con time() + 3600 per 1 ora).time() + 3600
percorsoPercorso in cui il cookie è valido."/"
dominioDominio per cui è valido."example.com"
sicuroSe impostato su true, il cookie è inviato solo tramite HTTPS.true
httponlyImpedisce l’accesso al cookie da JavaScript (protezione XSS).true

🔹 Esempio base di utilizzo


<?php
// Imposta un cookie che dura 1 ora
setcookie("utente", "Mario Rossi", time() + 3600);

// Legge il valore del cookie (dopo il refresh)
if (isset($_COOKIE["utente"])) {
    echo "Ciao " . $_COOKIE["utente"];
}
?>

🔹 Nota importante

I cookie vengono inviati dal browser dopo che la pagina è stata ricaricata. Per questo motivo, se imposti un cookie e lo leggi subito nella stessa esecuzione, il valore non sarà ancora disponibile fino al refresh della pagina.



LABORATORIO

Gestire i cookie con $_COOKIE

In questo laboratorio imparerai a impostare, leggere e cancellare cookie in PHP utilizzando la variabile $_COOKIE. Creeremo una piccola applicazione che memorizza il nome dell’utente e lo saluta al ritorno sulla pagina.


1 Creare il file principale

Crea un file chiamato gestione-cookie.php e aggiungi il seguente codice:


<!DOCTYPE html>
<html lang="it">
<head>
    <meta charset="UTF-8">
    <title>Laboratorio $_COOKIE</title>
</head>
<body>
<h2>Gestione Cookie in PHP</h2>

<?php
if (isset($_POST["nome"])) {
    $nome = $_POST["nome"];
    setcookie("utente", $nome, time() + 3600); // Cookie valido per 1 ora
    echo "<p>Ciao <b>$nome</b>, il tuo cookie è stato impostato!</p>";
    echo "<p>Ricarica la pagina per leggere il valore del cookie.</p>";
}
?>

<form method="post">
    Inserisci il tuo nome: <input type="text" name="nome">
    <input type="submit" value="Salva cookie">
</form>

</body>
</html>
    

2 Leggere un cookie

Dopo aver impostato il cookie e ricaricato la pagina, puoi leggerlo con la variabile $_COOKIE:


<?php
if (isset($_COOKIE["utente"])) {
    echo "<p>Bentornato, <b>" . htmlspecialchars($_COOKIE["utente"]) . "</b>!</p>";
} else {
    echo "<p>Nessun cookie impostato.</p>";
}
?>
    

3 Cancellare un cookie

Per eliminare un cookie basta impostarlo con una data di scadenza passata:


<form method="post">
    <input type="submit" name="elimina" value="Elimina cookie">
</form>

<?php
if (isset($_POST["elimina"])) {
    setcookie("utente", "", time() - 3600); // Scadenza nel passato
    echo "<p>Cookie eliminato!</p>";
}
?>
    

4 Visualizzare tutti i cookie

Per mostrare tutti i cookie attivi puoi utilizzare un ciclo foreach su $_COOKIE:


<h3>Tutti i cookie disponibili</h3>
<ul>
<?php
foreach ($_COOKIE as $chiave => $valore) {
    echo "<li><b>" . htmlspecialchars($chiave) . ":</b> " . htmlspecialchars($valore) . "</li>";
}
?>
</ul>
    

5 Test e analisi

  • Apri gestione-cookie.php nel browser.
  • Inserisci un nome e invia il modulo: il cookie verrà impostato.
  • Ricarica la pagina e verifica che venga mostrato il messaggio di benvenuto.
  • Apri gli strumenti di sviluppo del browser → “Applicazione” → “Cookie” per visualizzarli.
  • Prova il pulsante di eliminazione e verifica che il cookie sparisca.