Corso PHP/ Lezione 9: I cookies

In questa lezione vediamo come funzionino i famigerati cookies e come sia possibile gestirli attraverso il linguaggio PHP

Ogni utente di Internet ha sentito parlare, una volta o l'altra, dei cookies; l'argomento è tradizionalmente piuttosto controverso, risultando difficile stabilire in modo definitivo se i "biscotti" (questo il significato del termine) siano da considerarsi buoni o cattivi. Cerchiamo di capire, allora, di cosa si tratta.

La definizione originale dei cookies li descrive come un meccanismo mediante il quale delle applicazioni lato server posso memorizzare e recuperare informazioni sul lato client (rappresentato dal browser); in questo modo è possibile associare ad ogni visitatore un rudimentale "stato". Vediamo adesso come si manipolano i cookies con il linguaggio PHP.

Tutte le operazioni di scrittura, modifica o cancellazione di cookies in PHP avvengono mediante una stessa funzione, setcookie(). Tale funzione deve obbligatoriamente essere invocata prima che qualsiasi contenuto venga inviato al browser; i cookies, infatti, vengono trasmessi tra client e server sotto forma di intestazioni (headers) HTTP.
La funzione prevede solo due argomenti obbligatori: il nome da assegnare al cookie ed il suo valore. Ad esempio, se vogliamo memorizzare nel browser di un visitatore un cookie, che chiameremo $nomeutente, contenente la stringa "latoserver", l'istruzione da utilizzare sarà la seguente

// Imposto un cookie: $nomeutente = "latoserver.it";
setcookie( "nomeutente", "latoserver.it" );


E' possibile specificare anche altri argomenti (facoltativi); nell'ordine abbiamo: scadenza del cookie, percorso, dominio e secure. Per una discussione dettagliata si rinvia alla sitografia in fondo alla pagina.

Quando un cookie è stato impostato, il suo valore può essere modificato richiamando nuovamente la funzione setcookie() ed associando allo stesso nome il nuovo valore. La cancellazione di un cookie, infine, può avvenire in due modi: assegnandogli un valore nullo o impostando la scadenza ad una data passata.

Resta da vedere in quale modo si possano leggere da uno script PHP le informazioni memorizzate nei cookies; in questo compito siamo molto facilitati, in quanto l'interprete PHP analizza automaticamente i cookies inviati dal browser e li rende disponibili in altrettante variabili globali e nell'array associativo $HTTP_COOKIE_VARS.