logo simone provenzano

 

Consenti ai tuoi visitatori di modificare le preferenze sui cookie con PJ-Cookie-Kit 2.0

Risorse per il tuo sito web

 

 

 

 

 

[...] Pagina 3

 

Form Cookie opt-in ed opt-out   Cookie opt-in opt-out

 

Ecco di seguito come dovrà essere fatto il codice reale e definitivo del modulo. N.B. Riporto il codice andando a capo come negli esempi precedenti per farti comprendere meglio, ma puoi anche scrivere tutto in una sola riga, ovviamente utilizzando opportunamente gli spazi fra i vari elementi del codice.

 

<form>
<fieldset>
Impostazioni attuali
<br />
<br />

<input type="radio" id="consenso" name="scelta"
<?php
if (
   (
isset($_COOKIE['cb-enabled']))
   &&
   ($_COOKIE['cb-enabled'] == "accepted")
   )
{
echo 'checked="checked"';}
else
{echo '';}
?>
/>
<label>Accetto i Cookie</label>
<br />
<br />

<input type="radio" id="rifiuto" name="scelta"
<?php
if (
   (
isset($_COOKIE['cb-enabled']))
   &&
   ($_COOKIE['cb-enabled'] == "declined")
   )
{
echo 'checked="checked"';}
else
{echo '';}
?>
/>
<label>Non accetto i Cookie</label>
</fieldset>
</form>

 

Perfetto, abbiamo finito! Se hai fatto tutto correttamente potrai apprezzarne il risultato in modo interattivo. Potrai, ad esempio, provare ad effettuare una scelta, poi spostarti in un'altra pagina, e poi ritornare sulla pagina del modulo. Noterai che il modulo ti mostrerà la scelta che hai effettuato. Prova ora a cambiare scelta, a farti un giro in un'altra pagina ed a tornare nuovamente alla pagina del modulo. Vedrai selezionata la tua nuova scelta.
Il bello di questa soluzione è che la scelta può essere modificata sempre, perché ad ogni cambio di scelta la funzione JavaScript va a sovrascrivere il cookie "cb-enabled" con il suo nuovo valore ed una nuova data di scadenza a partire dal momento dell'ultima scelta effettuata.

 

 

 

Se proprio vogliamo essere pignoli e fare le cose per bene, ti suggerisco un paio di piccolissime aggiunte che puoi apportare al tuo codice. Come potrai notare, puoi scegliere le opzioni solo cliccando sui relativi "radio buttons", cioè i cerchietti, ma sarebbe più comodo poter cliccare anche sulle relative etichette, cioè sulle scritte "Accetto i Cookie" e "Non accetto i Cookie". Per fare ciò, bisogna associare ciascuna etichetta al rispettivo radio button, ed anche in questo caso possiamo ricorrere agli id.
Come fare? Semplicissimo, basta modificare le porzioni di codice interessate in questo modo:

 

<label for="consenso">Accetto i Cookie</label>

 

<label for="rifiuto">Non accetto i Cookie</label>

 

È per questo che all'inizio di questo articolo, se ricordi, ho deciso di usare gli id al posto delle classi: perché in questo modo posso fare tutto utilizzando solo gli id senza crearmi la necessità di ricorrere anche alle classi.

Ecco quindi il codice completo:

 

<form>
<fieldset>
Impostazioni attuali
<br />
<br />

<input type="radio" id="consenso" name="scelta" <?php if ((isset($_COOKIE['cb-enabled'])) && ($_COOKIE['cb-enabled'] == "accepted")) {echo 'checked="checked"';} else {echo '';} ?> />
<label for="consenso" style="cursor:pointer">Accetto i Cookie</label>
<br />
<br />

<input type="radio" id="rifiuto" name="scelta" <?php if ((isset($_COOKIE['cb-enabled'])) && ($_COOKIE['cb-enabled'] == "declined")) {echo 'checked="checked"';} else {echo '';} ?> />
<label for="rifiuto" style="cursor:pointer">Non accetto i Cookie</label>
</fieldset>
</form>

 

Ai due radio buttons ho aggiunto anche lo stile "cursor:pointer" per fare in modo che, quando si passa con il mouse sulle etichette, il cursore diventi la manina tipica dei link.
Spero di essere stato chiaro nel farti comprendere come procedere, e spero che questa soluzione potrà esserti utile per il tuo sito web.

 

 

 

Ho raccolto tutto il materiale con le impostazioni di base nell'archivio "PJ-Cookie-Kit-2.0.zip". Ovviamente sei libero di modificare il PJ-Cookie-Kit 2.0 a tuo piacimento secondo le esigenze del tuo sito.
Ci tengo a ricordare che, per la realizzazione di questa mia seconda versione del kit per adeguare un sito web alla cookie law, ho utilizzato come "materia prima" il plugin "jQuery CookieBar" sviluppato dal team PrimeBox.
Sono graditi commenti per ulteriori chiarimenti o suggerimenti per migliorare il kit ed eventualmente per arricchirlo di nuove funzionalità.

 

Se hai problemi con il funzionamento di questo codice ti sottolineo 3 punti molto importanti che potrebbero esserne la causa:
1) Affinché il tutto funzioni, le pagine interessate devono avere estensione .php. Se si parte da una pagina con estensione .htm o .html basta semplicemente rinominare tale estensione. Ciò può essere fatto direttamente attraverso il software di webdesign utilizzato (salvando il file come PHP) oppure tramite il sistema operativo. Per chi utilizza Windows, bisogna andare nelle opzioni delle cartelle e togliere il segno di spunta da "Nascondi le estensioni per i tipi di file conosciuti". Oppure ancora è possibile copiare ed incollare tutto il codice nel Blocco Note e poi salvarlo come nomefile.php.
2) Trattandosi di operazioni su pagine PHP, per testarne il funzionamento in anteprima è necessario un server. Se non hai uno spazio web in cui fare i tuoi test, ti consiglio di scaricare ed installare EasyPHP dal sito easyphp.org. Si tratta di un server virtuale che ti consente di testare il funzionamento delle tue pagine PHP anche in locale, cioè direttamente nel tuo computer. Per farlo funzionare ti basta spostare o copiare il tuo sito nella cartella del programma chiamata "www" e poi dal menu del programma stesso scegliere "local web" per far partire il browser con le impostazioni di server virtuale.
3) Se non hai letto l'articolo "Soluzione per banner di avviso cookie e blocco preventivo", ti ricordo che quando fornisci l'opzione di rifiuto devi nello stesso tempo disabilitare l'accettazione su scroll, altrimenti i cookie vengono accettati su scroll anche se l'utente aveva scelto di rifiutarli. Per disattivare l'accettazione dei cookie su scroll, apri il file "jquery.cookiebar.js" ed imposta "acceptOnScroll:false".

 

 

 

PAGINA 1 PAGINA 2 PAGINA 3

 

 

Simone Provenzano

 

 

 

 

 

 

Privacy e Cookie