Cookiekit (PHP) - Soluzione completa GRATUITA per l'adeguamento alla Legge sui Cookie

Scritto da Marco Panichi il Aggiornato il

La cookie law e tutta la confusione che ne deriva è una bella gatta da pelare per noi programmatori.

Sono sorte innumerevoli soluzioni per gesitre l’adeguamento. Cito ad esempio Iubenda e il plugin per WordPress WeePie, passando per i vari script fatti in casa più o meno diligenti.

A questi vorrei aggiungere il mio script Cookiekit ed è un solo file php molto leggero in grado di gestire tutti gli aspetti dell’adeguamento.

 


Un ringraziamento a Francesco Sciolti

Alcune parti del mio script sono state tratte dalla soluzione proposta da Francesco Sciolti.

ATTENZIONE: Cookiekit è uno script giovane

Avvaliti di Cookiekit solo se hai competenze di programmazione di medio livello e nessuna delle altre soluzioni non ti hanno soddisfatto!

Inoltre ti invito a condividere nei commenti le tue impressioni e critiche per aiutarmi a migliorare lo script!

ATTENZIONE: Se usi un sistema di cache, Cookiekit non funziona!

Sto risolvendo questo problema!

Nel frattempo sappi che se usi un sistema di caching (ad esempio plugin per WordPress come WP Total Cache o WP Super Cache) lo script non funzionerà come deve.

Perché usare Cookiekit

Come detto in apertura, il mio script si inserisce nella selva di soluzioni sorte per sollevare i programmatori dall’ingrato compito di adeguare il proprio sito web o i siti dei propri clienti (nel caso di freelance e web agencies).

Io ho cercato di usare alcune di queste soluzioni ma dopo vari tentativi e dopo un attento studio della situazione ho preferito implementare la mia soluzione. Eccone i vantaggi:

Blocco preventivo dei Cookies

  • Compresi quelli di terzi.
  • L’azione di blocco è selettiva e può essere configurata per categorie di cookies (tecnici, profilazione, di terzi, ecc).
  • Quando un widget (trip advisor, facebook like, google maps, disqus) viene bloccato, compare un riquadro che informa l’utente del blocco e gli permette di sbloccare il contenuto cliccando un pulsante.

Generazione automatica del banner

  • Con tanto di informativa breve
  • Link alla Cookie Policy
  • Pulsante accettazione
  • Pulsante negazione (opzionale)

Generazione automatica della Cookie Policy

  • Tutti i punti necessari per essere in regola (*)
  • Elenco dei cookies usati dal sito, divisi per categorie e riportanti le finalità
  • Checkbox per l’attivazione / disattivazione selettiva di ciascuna categoria di cookie
  • Diciture personalizzabili (titolo, nome azienda, nome sito, data aggiornamento, ecc)

(*) Non ho competenze legali e non mi prendo la responsabilità dell’uso che farai della Cookie Policy generata.

Molte altre funzionalità

  • GOOGLEBOT & CO: gli spider dei motori non vedranno il banner/popup e nemmeno i widget bloccati
  • REGISTRO DEI CONSENSI: ogni ip address avrà un file txt dove saranno registrate le sue impostazioni (richiesto dal Garante!)
  • CONSENSO IMPLICITO: possibilità di acquisire il consenso dell’utente tramite segnali impliciti (prosecuzione della navigazione, scroll, click fuori dal banner, chiusura del banner)
  • MODAL: versione popup del banner
  • ON/OFF: possibilità di accendere/spengere il cookiekit
  • ID: id che sarà assegnato come prefisso a tutti gli elementi html/js e ai cookies; utile per evitare conflitti con markup preesistente
  • BASE URL: utile in caso di più siti in stesso server
  • IP WHITELIST: possibilità di spengere cookiekit se il richiedente ha un determinato ip address
  • DOC: documentazione configurazioni facili

Un solo file, leggero e solido

  • Un solo file php da includere
  • Configurazione centralizzata
  • Generazione automatizzata di javascript e cookies
  • Nessuna necessità di CSS esterni
  • Possibilità di modificare i contenuti creati automaticamente in maniera facile (nello stesso file)

Prerequisiti – Situazioni nelle quali puoi usare il Cookiekit

Per poter lavorare con il mio kit occorre:

  • che il sito si avvalga di php
  • accesso ai files php
  • conoscenza php media
  • libreria jQuery
  • libreria jQuery Cookie

Installazione e configurazione

1) Upload e configurazione

  1. Scarica Cookiekit [ZIP]
  2. Carica il file cookiekit.php nel tuo server.
  3. Entra nel file cookiekit.php e configura a piacere dove indicato

2) In tutte le pagine del tuo sito

Nell’html Includi jQuery e la libreria jQuery Cookies

Nel php Includi il file cookiekit.php e renderizza il banner (javascript e html)

NOTA: Vuoi evitare che banner_javascript “wrappi” il codice con i tag <script>? scrivi cookiekit::banner_javascript(false);

3) La Cookie Policy

Crea una pagina Cookie Policy che chiaramente conterrà le istruzioni di cui al punto precedente. Oltre a quelle scriverai:

COME AL PUNTO 2: Vuoi evitare che policy_javascript “wrappi” il codice con i tag <script>? scrivi cookiekit::policy_javascript(false);

4) Inibizione dei Cookies (compresi quelli di terzi)

Laddove necessario andrai a “wrappare” il codice che genera i cookies in questo modo:

NOTA: <NOMECOOKIE> si riferisce all’identificativo che hai dato alla categoria di cookies al momento della configurazione

5) Test (su tutte le pagine!)

Testa il funzionamento del Cookiekit in maniera approfondita! Ti ricordo che 1) io ce la metto tutta per dare il mio contributo alla comunità ma non sono il Dio dei Biscotti – usa la tua testa e sopratutto il tuo avvocato per adeguare il tuo sito web! 2) I cookie, soprattutto quelli di terzi, vengono installati quando codice di terzi è presente nelle pagine e non tutte le pagine lo contengono – esempio: i cookie della Google Maps li trovi solo nella pagina “Dove Siamo” – ergo controlla tutte le pagine del tuo sito!

Per testare la presenza dei cookies in una pagina puoi usare Chrome, pigi F12, vai al tab Resource e sulla destra trovi la voce Cookies. Qui hai una voce per il tuo sito ed eventualmente per le terze parti.

Aiuti, commenti, suggerimenti

Per qualsiasi cosa non esitare ad inserire commenti qui sotto.

In questo periodo un pò acceso il mio tempo di risposta può variare da 1 a 5 giorni (< è un’eternità lo so!) ma se c’è una cosa a cui tengo è di rispondere a TUTTI i commenti!

Commenti

  • Gerardo

    Ciao Marco è possibile usare questo script in WordPress. Se si potresti creare un breve tutorial per chi non conosce molto bene il codice? Hai fatto un lavoro fantastico. Vorrei poterlo usare in WordPress. Grazie di tutto.

    • ciao Gerardo, il tutorial in realtà è costituito dalle istruzioni che ho dato (sicuramente migliorabili!). Se non si ha conoscenza del codice è difficile implementare la mia soluzione. Se usi WordPress posso consigliarti il plugin WeePie, che io stesso ho acquistato (poco più di 10€ mi pare) per valutarne il funzionamento. E’ un ottimo plugin molto in voga (la popolarità è un buon segnale e influisce anche sul fatto che il plugin sarà aggiornato frequentemente). Ecco il link: http://www.weepie-plugins.com/

  • Gerardo

    Ciao Marco vorrei provare ad usare questo plugin. Ma non so come fare.

    Ho scaricato jquery.cookie.js e mi trovo questa cartella carhartl-jquery-cookie-v1.4.1-0-g7f88a4e.zip dove la devo mettere.

    Poi ho scaricato questo file jquery-1.11.3.min.js dove va messo?

    Per il punto 2

    2) In tutte le pagine del tuo sito

    Nell’html Includi jQuery e la libreria jQuery Cookies. Cosa significa questo?

    Io ho un template dove posso inserire codice javascript personalizzato. Posso inserire il codice in questo campo?

    Nel php Includi il file cookiekit.php e renderizza il banner (javascript e html)

    Quando dici nel php siginifica che devo inserire il codice nel file Cookiekit.php?

    Le modifiche al putno 4) Inibizione dei Cookies si devono fare sempre nel file Cookiekit.php?

    Scusa se ti faccio tutte queste domande, mi piacerebbe provare ma non so come fare.

    Grazie per tutto l’aiuto che potrai offrirmi

    • ciao Gerardo, come scritto sotto se non hai conoscenza del codice la vedo dura. Ti rispondo comunque punto per punto e vediamo se ti è sufficiente! Allora:

      > la cartella jquery.cookie la devi mettere nella cartella del tema che usi (wp-content/themes//)
      > per includere jquery cookie in wordpress (jquery c’è già) devi inserire questo codice nel file functions.php, sempre nel tuo tema
      > il php devi metterlo nei files (php appunto) del tuo tema: nell’header ad esempio o nel footer
      > le inibizioni devi farle nel tema laddove ve ne sia bisogno. quindi apri quei files del tema che contengono blocchi che attivano cookies e li wrappi con il codice che ho indicato. qui chiaramente arrivi ad un vicolo cieco se non hai idea di come ciò avvenga. Inoltre in alcuni casi dovrai modificare opportunamente alcune pagine – ad esempio per la pagina Dove Siamo con la mappa di Google dovrai creare un file (template o page-.php).

      Se pensi di farcela chiedi pure più informazioni sono qui ad aiutarti. Altrimenti fai riferimento ai vari plugins per WordPress che possono fare al caso tuo!

      Buon lavoro!

  • Ciao Marco, complimenti per questo tuo ottimo lavoro.

    Quattro domande pratiche (prima di procedere a installarlo):

    1) è possibile rendere il banner modale, in modo che la pagina sottostante sia opacizzata (ma visibile per Google) prima del consenso?

    2) è possibile legare il consenso anche ad un evento scroll?

    3) se ho ben capito, il kit consente l’esecuzione dei codici wrappati da if( cookiekit::check()… senza procedere al refresh della pagina. Mi confermi questa modalità di funzionamento? Insomma, per capirci: senza consenso, la pagina non carica, ad esempio, il facebook like button. Appena dato il consenso, il bottone “magicamente” appare senza aver effettuato il reload. Funziona così?
    4) è possibile eseguire in modo condizionale anche dei plugin? Per dire, io utilizzo AddToAny per la visualizzazione di una floating bar con i pulsanti social. Come condizionare l’esecuzione del plugin alla presenza del cookie?
    Grazie mille e ancora complimenti
    Fabio

    • Salve Fabio,

      grazie dei complimenti sempre graditi. Riguardo le tue richieste il mio kit (al momento al meno) fa fiasco su più fronti, per cui magari puoi riferirti ad un’altra soluzione. In ogni caso ti rispondo punto per punto:

      1) BANNER MODALE: per ora no, però puoi modificare la funzione banner_html a tuo piacimento per aggiungere un div overlay; successivamente modificherai la banner_javascript per rimuovere l’overlay.

      1.BIS) GOOGLEBOT: no, viene visto anche da Google

      2) CONSENSO CON SCROLL: no

      3) BLOCCO PREVENTIVO: finché non dai consenso (o lo rimuovi tramite le preferenze nella cookie policy) vedrai un riquadro che ti avverte che la funzionalità è stata rimossa + pulsante per attivare i cookies. Quando l’utente clicca il pulsante il sito SI REFRESHA. Quindi NO, non funziona senza refresh.

      4) BLOCCO ADDTOANY: si lo puoi bloccare, a patto di farlo via php. Per cui wrapperai lo shortcode del plugin o il widget che lo contiene, direttamente nei files del tuo template (functions.php, header.php, sidebar.php, ecc). alternativamente dovrebbe esistere qualche plugin su WP per inserire codice php dentro ai widget. a quel punto crei un “widget php” e dentro inserisci una cosa tipo <?php if( cookiekit::check() ) do_shortcode(“[SHORTCODE-DI-ADD-TO-ANY]”); else cookiekit::blocco_html(); ?> (come vedi mi sono avvalso di do_shortcode anziché del semplice echo, altrimenti non viene interpretato lo shortcode)

      A presto,

      Marco

  • zeroing

    scaricato ed installato, ottimo grazie!!!!

    • grazie a te Zeroing! dammi un feedback se hai tempo!

      • zeroing

        l’ho fatto funzionare dopo un pò di prove. un pò macchinoso ma nel complesso completo e dvo dire con molte funzioni in più rispetto le soluzioni alternative, forse dovresti metterl o su github e collaborare con altri, può diventare un buon prodotto

        • ciao Zeroing, felicissimo del riscontro positivo che mi hai dato! Non uso github (altri me lo hanno fatto notare) e quindi non mi sono cimentato nell’impresa. Del resto diciamo che il mio scopo principale è stato quello di costruire una soluzione da sfruttare con i siti dei clienti, cosa che sto facendo molto efficacemente. Poi ho condiviso per la giusta causa però sinceramente non svilupperò il progetto per un pò di tempo, non intendo cavarne un prodotto insomma! A presto!

  • Giorgio Modena

    Caro Marco, sono passato qui solo per farti i complimenti e ringraziarti, questo script mi ha salvato da diverse situazioni. se posso dire….molto meglio di iubenda e vari!

    Giorgio

    • salve Giorgio, ti ringrazio molto per il commento…è un onore!

      Iubenda chiaramente è avanti anni luce però se hai necessità di personalizzare e mettere mano al codice credo che la mia soluzione sia più…alla portata! Fammi sapere come procede e se incontri problemi/bug/idee per migliorare :)

  • Umberto

    Salve è ancora funzionante il kit?

    • salve Umberto, il kit è perfettamente funzionante. Se lo installi non esitare ad inviarmi qui o per email le tue impressioni. Ci conto!

  • Piolo

    Ottimo grazie!!!!! Testato su 3 siti statici, veramente una risorsa fenomenale per chi ha tempo e pazienza di configurare. Perché non carichi su github?

    • Grazie per i complimenti ed il feedback! Per me è molto importante, anche considerato che vi ho impiegato molto tempo a sviluppare le singole funzionalità. Github? Ci farò un pensierino, anche se trovo più comodo e sotto controllo diffondere tutto dal mio sito.