Sicher kennst du auch Webseiten, die einen Balken anzeigen, in dem Du akzeptieren musst, dass, oder ob Cookies auf deinem Rechner gespeichert werden dürfen. Wenn du die Möglichkeit hast, zu wählen, ob mit Cookies gearbeitet werden darf oder nicht, muss auch dieser Entscheid irgendwo gespeichert werden. Dies wird ironischerweise mit einem Cookie gemacht. Es muss also geprüft werden, ob schon ein cookie besteht, um zu entscheiden, ob cookies angelegt werden dürfen oder nicht, und ob der Cookie Bar angezeigt werden soll oder nicht.
Aufgabe
- Lade die HTML-Vorlage cookie-alert.zip herunter, oder benütze deine eigene Wunsch-HTML-Seite und kopiere den HTML-Code für den Cookie-Balken in deine Datei.
- In einem PHP Anweisungsblock oberhalb deines HTML's bereitest du als erstes eine Variable für den cookiebar mit dem Namen $showCookieWarning und dem Wert true vor (Statusvariable: sie wird später je nach Situation einen neuen Wert erhalten).
- Gleich danach erstellst du nun eine IF-Abfrage, die mittels isset() oder empty() die GET-Variable prüft, die übermittelt wird, wenn man auf einen der beiden Buttons klickt. Existiert diese, soll der Wert der GET-Variablen in ein Cookie mit dem Namen "acceptcookies" gespeichert werden.
- Nun erstellst du noch eine IF-Abfrage mit isset(), die prüft, ob ein Cookie mit dem Namen "acceptcookies" existiert, und wenn dies so ist, setze die vorher erstellte Variable $showCookieWarning auf false.
- Existiert das cookie, dann prüfe mit einer weiteren Abfrage, welchen Wert sie enthält. Diese Abfrage kannst du mit SWITCH/CASE oder IF/ELSE machen. Je nach Wert kannst du nun im Body der Landing Page einen Text ausgeben, der besagt, dass die App sich an deine Einstellungen erinnern wird oder eben nicht. (Im "richtigen Leben" würdest du diese Abfrage immer dann machen, wenn du planst, ein Cookie zu speichern, und dies dann nur tun, wenn acceptcookies den wert true hat.)
- Prüfe nun da, wo der Cookie Bar ausgegeben wird, ob $showCookieWarning den Wert 'true' hat, um zu entscheiden, ob der Cookie Bar angezeigt werden soll.
Tipps
- Abfrage zu $showCookieBar: du kannst die zwei Zeilen, die es braucht, um die IF Anweisung zu beginnen, und um sie zu beenden, jeweils in einen PHP Anweisungsblock schreiben, und den HTML Code dazwischen einfach als solchen stehen lassen.
- überwache und lösche die cookies jeweils mit einem Browser-AddOn, das Cookies anzeigt und löschen lässt.
- Überwache zusätzlich im Code die Variable $_COOKIE und $_GET mit je einer pint_r Anweisung. So kannst du dir besser vorstellen, was geschieht.
- Wenn es dich interessiert, warum man dies macht, findest du ganz viel Stoff im Internet dazu