> **Attenzione:** Questo articolo è stato scritto molti anni fa e alcune informazioni potrebbero essere obsolete o errate. Per favore, tenetelo a mente quando leggete.
I cookie sono piccoli pezzi di informazioni testuali memorizzati nel browser del visitatore di un sito web. Sono sempre trasferiti con ogni pagina che viene ricaricata, e possono essere cancellati, modificati e letti dall'utente in qualsiasi momento, quindi non sono adatti a memorizzare informazioni personali.
*Attenzione: se il tuo sito web utilizza cookie per tracciare gli utenti o componenti aggiuntivi di terze parti (ad esempio il pulsante "Mi piace" di Facebook, il contatore di traffico di Google Analytics, i banner pubblicitari), devi informare l'utente di questo.
"Un'altra nota: il vostro sito non deve contenere pubblicità o codici di misurazione finché non avete ottenuto il consenso. E questo fa schifo".
-- David Grudl
Tutti i cookie sono memorizzati nella variabile superglobale $_COOKIE
, che memorizza ogni chiave come un array.
Per esempio, se abbiamo memorizzato il nome dell'utente attualmente connesso sotto la chiave user
nel cookie, possiamo recuperarlo facilmente:
echo $_COOKIE['utente'];
Attenzione: i cookie potrebbero non esistere sempre (per esempio, se sei un nuovo utente). Pertanto, dovremmo sempre controllare l'esistenza di cookie prima di qualsiasi annuncio e offrire un messaggio di errore alternativo, se necessario.
if (isset($_COOKIE['utente']) && $_COOKIE['utente']) {echo 'Utente registrato:' . $_COOKIE['utente'];} else {echo 'Nessuno si è registrato.';}
Poiché tutti i cookie sono memorizzati nella variabile superglobale $_COOKIE
, possono essere facilmente elencati:
var_dump($_COOKIE);
O in alternativa, passare attraverso il ciclo e ottenere tutte le chiavi e i valori:
foreach($_COOKIE as $key => $value) {echo $key . ':' . $value; // scrivere la chiave e il valoreecho '<br>'; // avvolgere la linea}
La funzione setcookie()
è usata per memorizzare dati nei cookie.
Il primo parametro è la chiave del cookie, che viene usata per leggerlo dal campo $_COOKIE
, e il secondo parametro è il dato stesso come stringa.
Con il terzo parametro possiamo (opzionalmente) impostare il periodo di validità per cui il cookie sarà disponibile. Il tempo di disponibilità è dato come timestamp, quindi se vogliamo impostare un cookie con una validità di 1 ora da questo momento, dobbiamo solo scrivere time() + 3600
.
$data = 'Alcuni contenuti che vogliamo conservare.';setcookie('TestCookie', $data);setcookie('TestCookie', $data, time() + 3600);
I cookie non sono adatti a memorizzare dati più grandi (i browser di solito permettono di memorizzare solo 4 kB e un massimo di 20 cookie, la dimensione include anche i nomi dei cookie, le impostazioni di validità, ecc.)
È meglio memorizzare dati più grandi sul server e mettere solo un identificatore nel cookie, con il quale possiamo dire a quale utente appartiene. Questo metodo è chiamato $_SESSION
ed è discusso in un articolo separato.
Se non avete necessariamente bisogno di memorizzare i dati sempre in modo sincrono sul server, potete usare il localstorage storage disponibile in javascript. La sua capacità è dell'ordine di MB e i dati non sono soggetti a scadenza.
Jan Barášek Více o autorovi
Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.
Rád vám pomůžu:
Články píše Jan Barášek © 2009-2024 | Kontakt | Mapa webu
Status | Aktualizováno: ... | it