Homepage -> Guida PHP



COOKIES



Creare un cookie

I Cookies sono spesso usati per memorizzare dati nel browser remoto e tenere traccia degli utenti o identificarli al loro ritorno. Il cookie è un file che contiene alcune informazioni e viene memorizzato sul disco fisso del client. Per poter usare i cookies, deve essere attivata la relativa opzione del browser del client.

I cookies sono parte dell'intestazione HTTP, quindi devono essere settati prima che qualsiasi output sia inviato al browser. Questi non devono superare le dimensioni di 4 Kb.

I cookies possono contenere fino a sei componenti: Nome, Valore, Scadenza, Percorso, Dominio, Sicurezza. Per settarne uno, bisogna seguire la sintassi seguente:


setcookie(nome, valore, tempo, percorso, dominio, sicurezza);


Vediamo ora un esempio:


<?php
setcookie ("test_cookie","niente di particolare",time()+43200,"/");
echo "<HTML>";
echo "<BODY>";
if (isset($test_cookie))
{
      echo "Ciao visitatore, i tuoi contenuti sono: $test_cookie";
} else
{
      echo "Non ho trovato alcun cookie con il nome test_cookie";
}
echo "</BODY>";
echo "</HTML>";
?>


Nell'esempio di sopra, notate come la funzione setcookie() venga chiamata prima di qualsiasi tags, compresi anche <html> o <head>. Tutti gli argomenti della funzione eccetto il nome sono opzionali.

Se viene passato alla funzione solo l'argomento nome, il cookie registrato con quel nome verrà cancellato dal client su cui è archiviato.

E' possibile sostituire gli argomenti che non si intende specificare utilizzando una stringa vuota (""). Gli argomenti tempo e sicurezza, che richiedono numeri interi come valori, non possono essere omessi inserendo una stringa vuota; per questo scopo si usa lo 0. L'argomento tempo è un normale intero Unix Timestamp ottenibile grazie alle funzioni time() o mktime(). sicurezza sta ad indicare che il cookie dovrebbe essere trasmesso soltanto attraverso un collegamento sicuro di tipo HTTPS.

Ricordate che i cookies diventano disponibili soltanto dalla pagina successiva a quella che li ha generati, o dopo il ricaricamento di questa.

Ogni cookie inviato dal client sarà automaticamente trasformato in una variabile PHP, come avviene nel caso di dati GET o POST, in base alle variabili di configurazione register_globals e variables_order. Se si vogliono assegnare più valori ad un singolo cookie, basta aggiungere [] al nome del cookie. Dalla versione 4.1.0 del PHP, il vettore globale $_COOKIE sarà sempre adibito alla gestione dei dati memorizzati tramite cookies sul pc client; $_COOKIE sostituisce il vettore globale $HTTP_COOKIE_VARS, usato nelle versioni precedenti del PHP.


Cancellare un cookie

I cookie devono essere cancellati specificando gli stessi parametri con cui sono stati creati. Per cui se il cookie è stato creato specificando solo i parametri nome e valore, basterà impostare la funzione setcookie() solamente con il nome del cookie da cancellare:


setcookie ("nome del cookie");


oppure mettere un tempo di scadenza negativo, nel caso in cui avete creato il cookie impostando solo il nome, valore e tempo di scadenza:


setcookie ( "nome","","time()-43200,"/");


Se nel tempo di scadenza si mettessero i seguenti valori, si otterrebbero:


time() +3600 Scadrà tra un'ora
time() +86400 Scadrà tra 24 ore
time() +2592000 Scadrà tra 30 giorni