Redazione
a- a+

Leggere e creare cookies PHP

Vediamo come creare, gestire, leggere e cancellare i cookies con PHP.

Un cookie è un file che il server invia al client scrivendoci dentro delle informazioni. Il cookie viene memorizzato e scritto sull’hard disk del client attraverso il browser. Successivamente queste informazioni possono essere lette dal server quando il client richiede una determinata pagina.

Spesso vengono utilizzati per identificare gli utenti o per memorizzarne le preferenze. La differenza tra sessione e cookie è che, come detto in precedenza, i cookie vengono memorizzati sul computer client, mentre le sessioni sono conservate lato server. L’utente ha il pieno controllo dei cookie, infatti l’impostazione del browser per i cookie può essere gestita andando nel proprio browser in:

Strumenti>> Opzioni Internet> Privacy> poi sul pulsante avanzate.

Quindi a differenza delle sessioni, i cookie sono gestiti dagli utenti attraverso il proprio web browser e pertanto dobbiamo scegliere con attenzione quali dati devono essere utilizzati tramite i cookie.

I cookie vengono memorizzati con alcuni valori e possono essere letti da altri file nella stessa directory o sottodirectory. Per creare un cookie utilizziamo la funzione setcookie().

La sintassi della funzione setcookie() è la seguente:

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

dove

Nome

Il nome della variabile da memorizzare

Valore

Il valore memorizzato nella variabile

Scadenza

Quando il cookie verrà cancellato dal client. In genere si usa la struttura time()+n dove n è il numero di secondi dopo cui scade il cookie

percorso

Le directory per cui vale il cookie

dominio

Il dominio per cui vale il cookie

sicurezza

Se impostato a 1 il cookie è trasmesso solo tramite HTTPS

$value=”ciao mondo”;setcookie ("test_cookie ", $value,time()+3600); /* verrà cancellato dopo  1 ora */

il codice appena visto imposta il cookie con il valore della variabile $value. Il cookie scadrà dopo un’ora, perché la scadenza è impostata a un’ ora (3.600 secondi) rispetto al presente. Il tempo di scadenza deve essere impostato in secondi.

Da tenere ben presente che:

1. I cookie registrati da una pagina saranno disponibili da subito alla pagina successiva.

2.  Il cookie contiene informazioni contenute nell’header della pagina e per questo motivo la scrittura di un cookie va assolutamente fatta prima di inviare qualsiasi contenuto al client. Questo vuol dire che se vogliamo registrare un cookie, la prima istruzione della nostra pagina PHP deve essere quella del cookie.

Una volta impostato un cookie, questo può essere letto esattamente come si fa per una variabile. La funzione da utilizzare è la  isset() che serve a vedere se un cookie è stato impostato.

<html><body><?phpif (isset($HTTP_COOKIE_VARS ["test_cookie "]))  echo "Il contenuto del cookie è: " . $HTTP_COOKIE_VARS ["test_cookie "] ;else  echo "Il cookie non è stato impostato";?></body></html>

Allo stesso modo, per cancellare i cookie basterà seguire la stessa procedura usata per creare l’impostazione iniziale, assegnando però una scadenza settata su un periodo di tempo precedente all’utilizzo, ovvero:  time() -3600. Ciò impone che il cookie sia scaduto e viene di conseguenza eliminato dal computer client.

setcookie ("test_cookie ", "", time() - 3600);