EU Cookie Richtlinie – Test: EU Cookiehinweis PHP-Klasse

EU Cookie RichtlinieIn den vorhergegangenen Artikeln zum Thema EU Cookie Richtlinie hatte ich bereits einige JavaScript-Lösungen und WordPress-Plugins getestet. Einen anderen – aber keineswegs uninteressanten – Weg geht Elmar Eigner auf Open-Eye.de. Er verwendet PHP um einen Cookiehinweis einzublenden und hat dafür eine eigene PHP-Klasse programmiert, die er frei zum Download zur Verfügung stellt.

Bereits auf der Projektseite Open-Eye.de/euc/ können die verschiedenen Möglichkeiten dieser PHP-Lösung getestet werden. Es gibt fünf Beispielseiten, die jeweils unterschiedliche Konfigurationen darstellen:

  1. Die reine Anzeige eines Hinweistextes, der zeitgesteuert von selbst wieder verschwindet
  2. Eine Variante mit Hinweistext und Zustimmungsbutton per JavaScript
  3. Dito ohne JavaScript
  4. Eine Lösung, wie bei 1, wobei aber die Erzeugung und die Anzeige des Hinweises getrennt erfolgt (für CMS-Systeme zum Beispiel)
  5. Wie bei 4, aber mit separatem CSS-Teil, der in den Header eingebunden werden kann

Besonders interessant klingt für mich dabei die Variante 3, da sie komplett auf JavaScript verzichtet. Das können andere Lösungen nicht und das macht die EU Cookiehinweis PHP-Klasse von OpenEye.de interessant für Websites, die kein JavaScript einsetzen wollen. Und für Websites, die auch einen Cookiehinweis einblenden wollen, wenn der Anwender in seinem Browser JavaScript deaktiviert hat. Die Variante 3 werde ich nun genauer testen.

Einbindung

Die PHP-Klasse kann in Form eines ZIP- oder TAR-Archivs heruntergeladen werden. Nach dem Entpacken des Archivs erhält man eine Datei README.txt als Dokumentation, fünf PHP-Webdateien, korrespondierend zu den 5 oben aufgeführten Beispielseiten und ein Verzeichnis eu-cookie. Dieses Verzeichnis enthält die nötigen PHP-, CSS- und Konfigurationsdateien und muss auf den Server zu den eigenen Webseiten hochgeladen werden. Die Konfigurationsdateien sind dabei einfache Textfiles, in denen die Hinweistexte abgelegt sind, die sich an dieser Stelle auch anpassen lassen.

Da ich die Lösung 3 (ohne JavaScript) realisieren möchte, öffne ich die entsprechende Beispieldatei index3.php und kopiere mir den PHP-Code in meine eigene Webseite. Der lautet:

<?php 
 require_once ( 'eu-cookie/euc.php' );
 $options = array (
  "css_file" => 'eu-cookie/euc_style_nojs_click.css',
  "txt_notice_file" => 'eu-cookie/euc_notice_nojs_click.txt',
  "cookiename" => 'euc_has_seen3',
  "cookierule" => 'has_clicked'
 );
 $euc = new euc ( $options );
?>

und ich kann ihn 1:1 in den Footerbereich (vor </body>) meiner Seite übernehmen. (Ggf. müssen natürlich die Pfade zu den Dateien angepasst werden.) Und damit funktioniert das Ganze auch bereits. Allerdings mit einer kleinen Unschönheit. Der CSS-Code zum Styling der Hinweisleiste steht nun im Body-Bereich der HTML-Seite, was zwar funktioniert, aber eigentlich nicht erlaubt ist. Der HTML-Validator auf w3.org wirft auch prompt einen Fehler aus: „Element style not allowed as child of element body in this context.“

Eine Abhilfe dafür ist bei dieser PHP-Lösung aber bereits vorgesehen. Beispiel 5 trennt die Ausgabe von HTML- und CSS-Inhalten, so kann CSS in <head> und der HTML-Code in <body> stehen, wie es sich gehört. Ich verheirate also jetzt die beiden Varianten 3 und 5 wie folgt:

Unter <head> kommt:

<?php
 require_once ( 'eu-cookie/euc.php' );
 $options = array (
  "print" => false,
  "css_type" => 'single',
  "css_file" => 'eu-cookie/euc_style_nojs_click.css',
  "txt_notice_file" => 'eu-cookie/euc_notice_nojs_click.txt',
  "cookiename" => 'euc_has_seen3',
  "cookierule" => 'has_clicked'
 );
 $euc = new euc ( $options );
 print $euc->cssbuff;
?>

Und ans Ende der <body> Section nur noch:

<?php
 print $euc->buff;
?>

Test

Und hier nun das Ergebnis: Der Hinweistext legt sich über den oberen Bildschirmrand und verdeckt (wie erwartet) einen schmalen Streifen der Webseite.

Open-eye

Der Button „Details ansehen“ verlinkt auf die Cookie-Policy, also die Datenschutzerklärung. Der Button „Zustimmen“ setzt per PHP (und nicht per JavaScript) ein Cookie, damit der Hinweis in Zukunft unterbleibt und lädt dann die Seite neu. Und die HTML-Validierung ist nun auch fehlerfrei.

Fazit

Wer auch nur ein grundlegendes Verständnis von PHP mitbringt, der wird an dieser Klasse seine Freude haben. Das ist eine Cookiehinweis-Lösung per PHP und auf Wunsch sogar ganz ohne JavaScript. Dabei gibt es unzählige Anpassungsmöglichkeiten. Nicht nur, dass der Hinweistext und die Buttonbeschriftungen geändert werden können, auch der Cookiename lässt sich nach eigenen Wünschen abwandeln. Und mit ein paar kleinen Eingriffen in die CSS-Datei bekommt die Hinweisleiste zum Beispiel eine andere Farbe, wird leicht durchsichtig oder wandert vom oberen an den unteren Bildschirmrand.

 


Weitere Artikel in dieser Kategorie:

 

5 Kommentare

  1. Anselm Rapp

    Eine tolle Sache, vielen Dank für die Veröffentlichung. Ich werde nur noch versuchen – so fit bin ich in CSS nicht -, den Hinweis entweder zu zentrieren oder über die ganze Breite gehen zu lassen. Gruß, Anselm Rapp

    Antworten
  2. Angelika Rosenzweig

    Hallo Helmut Karger,
    das ist eine tolle Anleitung. Um den Kekskram in einer meiner Seite einzubauen, habe ich mit Hilfe der tollen Anleitung etwa 20 Minuten gebraucht.
    Vorher hatte ich allerdings keine Cookies, jetzt habe ich eins.
    Herzlichen Dank
    Angelika Rosenzweig

    Antworten
    1. Helmut (Beitrag Autor)

      Wenn Du vorher keine Cookies hattest, dann brauchst Du so ein Cookiebanner doch überhaupt nicht.

      Antworten
  3. Angelika Rosenzweig

    Stört doch aber nicht, und ich muss dann nicht beweisen, dass ich wirklich keine habe.
    Ich wollte es für alle meine Seiten genauso machen und die haben so affiliate-Programme eingebunden und die setzen bestimmt Cookies.

    Antworten
    1. Helmut (Beitrag Autor)

      Ich kann natürlich keine rechtlichen Ratschläge geben, aber was ich so lese, scheint es allgemeiner Konsens zu sein, dann man im Sinne der DSGVO nur über die Dinge informiert, die den Anwender auch wirklich betreffen. Jetzt nur mal für andere Leser hier gesprochen, möchte ich diese Vorgehensweise nicht empfehlen.

      Antworten

Schreiben Sie einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert