Un cookie è una coppia chiave/valore avente una data di scadenza ed un dominio di validità che viene salvata sul PC dell'utente ed inviata (attraverso appositi header HTTP) ad ogni pagina dalla quale possa essere acceduta.
Grazie ai cookie è possibile identificare con buona sicurezza le credenziali di un utente che accede ad una pagina, oppure salvare dei dati per un successivo recupero. Per esempio si potrebbe salvare su un cookie un valore indicante l'ultima pagina visualizzata, in modo da occuparsi di ridirigere l'utente all'ultima pagina visualizzata nel momento in cui si connettesse nuovamente al nostro sito.
La creazione di un cookie è un'operazione molto semplice, che in PHP può essere effettuata utilizzando un'unica chiamata alla funzione
setcookie()
. Questa funzione accetta un numero variabile di parametri. Nell'ordine:
- Il nome del cookie
- Il valore del cookie, che dovrà essere necessariamente un valore scalare (intero o stringa, gli array non possono essere salvati direttamente)
- Un numero indicante la data di scadenza del cookie. Nel caso questo numero sia 0 o non specificato, il cookie durerà fino a che l'utente non chiuderà il suo browser. Nel caso in cui il timestamp specificato risulti in una data precedente a quella attuale, il cookie viene cancellato
- Il path di validità del cookie
- Il dominio di validità del cookie
- Un parametro boolean che indica se trasmettere il cookie solamente attraverso una connessione sicura HTTPS
Dato che la funzione
setcookie()
genera esplicitamente un header HTTP, è necessario che prima del suo utilizzo non sia stato stampato (usando echo
, print
o qualunque altro metodo di output) alcun valore, altrimenti verrà
generato un errore. Anche una riga vuota all'inizio del file prima del
tag di apertura PHP porterà alla generazione di questo errore.
Alcuni esempio di creazione di un cookie:
setcookie('prova_cookie', 'valore cookie', /* dura per un'ora */ time() + 3600);
setcookie('prova_2', 'ciao'); //cookie che dura fino a che l'utente non chiude il browser
setcookie('prova_2', 'ciao'); //cookie che dura fino a che l'utente non chiude il browser
setcookie('prova_cookie', '', time() - 3600);
$_COOKIE[$nome_cookie]
nelle pagine successive a quella attuale, presupponendo che la data di
scadenza non sia trascorsa e che siano rispettate le restrizioni di
dominio e cartella.
È buona norma non creare troppi cookie, dato che i browser hanno un limite sia relativo ad uno specifico dominio che ad una specifica cartella. In caso fosse necessario mantenere molti valori, è preferibile salvarli su database o file e salvare nel cookie una chiave che ne permetta l'accesso nella pagine successive. I cookie sono facilmente recuperabili e leggibili, quindi è importante non salvare mai informazioni private o vitali, salvo previa criptazione.
0 commenti:
Posta un commento
Proponi un'idea, segnalaci un problema.
Entra a far parte di CS3, pubblica i tuoi articoli.
Scrivi un commento!