php esempio utilizzo cookie

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.

Rispondi

%d blogger hanno fatto clic su Mi Piace per questo: