In questo breve articolo vedremo un codice scritto in php con un esempio di utilizzo dei cookie
Prima di cominciare è bene precisare che i cookie che andremo ad utilizzare andranno a scrivere i valori necessari per il nostro codice all’interno dei PC dell’utente.
Questo significa che prima di utilizzarli, dovremo necessariamente avvisare l’utente tramite un banner o semplicemente un testo scritto all’inizio della pagina. In ultimo, dobbiamo anche dichiarare come verranno trattati questi dati.
Torniamo al nostro esempio, il cookie si crea in questo modo
setcookie("nome_utente", "pippo", time()+3600);
// 'nome utente' è il nome che daremo al nostro coockie
// 'pippo' è il valore che andremo a memorizzare nella variabile 'nome utente'
// 'time()+3600' indica la scadenza del cookie. In questo caso 3600 secondi ossia 1 ora
ora che sappiamo come funziona la struttura del cookie vediamo come utilizzarlo in un esempio completo.
Supponiamo di avere un campo di testo in un modulo form e che vogliamo utilizzare il valore immesso dall’utente come variabile del nostro cookie
il codice di esempio potrebbe essere simile al seguente:
// verifico se il cookie 'ordina_data' che utilizzeremo per ordinare in dati una lista esiste
// se esiste 'if (isset' allora creeremo una variabile ' $ordina_data_cook' in cui
// memorizzare il valore del coockie
if (isset($_COOKIE['ordina_data'])) { $ordina_data_cook = $_COOKIE['ordina_data']; }
// ma la nostra informazione proveniva da un campo di testo in un form per cui
// leggo il valore che l'utente ha scelto di memorizzare
// e lo meorizzo in una variabile '$ordina_data_form'
$ordina_data_form=$_GET["ordina"];
// ora veniamo al punto focale del codice
// se la variabile '$ordina_data_form' è vuota significa che l'utente non ha inserito nulla nel campo di testo
if ($ordina_data_form=="") {
// per cui la nostra variabile finale '$ordina_data' conterrà il valore, sempre se sia stato impostato, del coockie
$ordina_data=$ordina_data_cook;
//altrimenti...
} else {
// la variabile proveniente dal campo del formo '$ordina_data_form' contiene un valore immesso dall'utente
// che andiamo a memorizzare nella variabile finale '$ordina_data'
$ordina_data=$ordina_data_form;
// in questo caso anche il valore del cookie deve essere riscritto come segue
setcookie("ordina_data", $ordina_data, strtotime("+1 year"));
// 'ordina_data' è il nome della variabile contenuta nel cookie
// '$ordina_data' contiene il valore proveniente dal form
// 'strtotime("+1 year")' dice al PC dell'utente di memorizzare il cookie per 1 anno
}
// infine se l'utente non ha fatto una scelta compilando il form e non ha nel suo PC il cookie con il valore memorizzato
// andiamo a fornire noi un valore predefinito per l'ordinamento dei dati. in questo caso 'DESC'
if ($ordina_data=="") {
$ordina_data="DESC";
// scriviamo il nostro valore predefinito nel cookie
setcookie("ordina_data", $ordina_data, strtotime("+1 year"));
}
// se abbiamo bisogno di cancellare un cookies bisogna utilizzare il seguente comando
// se fate un copia e incolla di questo codice cancellate la riga sottostante altrimenti
// renderà vano il vostro lavoro ;)
unset($_COOKIE["ordina_data"]);
}
Ora verrà riproposto in codice scritto sopra senza i commenti e vedrete che sarà più leggibile
if (isset($_COOKIE['ordina_data'])) { $ordina_data_cook = $_COOKIE['ordina_data']; }
$ordina_data_form=$_GET["ordina"];
if ($ordina_data_form=="") {
$ordina_data=$ordina_data_cook;
} else {
$ordina_data=$ordina_data_form;
setcookie("ordina_data", $ordina_data, strtotime("+1 year"));
if ($ordina_data=="") {
$ordina_data="DESC";
setcookie("ordina_data", $ordina_data, strtotime("+1 year"));
}
}
Il seguente codice è stato utilizzato nella stesura della pagina “Archivio storico del gioco del Lotto” nello specifico, diversi coockies sono stati utilizzati per memorizzare tutte le impostazioni presenti nella pagina nonché i valori dei colori presenti in ognuna delle caselle di ricerca.
