Cookie

Die Klasse Cookie abstrahiert die in PHP verfügbaren Funktionen zum Lesen und Schreiben von Cookies gemäß RFC-6265. Durch das einfach zu nutzende Interface können Sie Cookies in Ihrer Applikation ohne Kenntnis der genutzten PHP-Funktionen verwenden.

Weitere Informationen zur Unterstützung von Cookies in PHP finden Sie unter php.net/setcookie.

1. Erzeugen eines Cookies

Um ein Cookie zu erzeugen, besitzt die Klasse Cookie aus dem Namespace APF\tools\cookie einen Konstruktor, der alle notwendigen Parameter entgegen nimmt. Diese sind:

Variable Beschreibung
$name Name des Cookies. Dieser Parameter muss stets bei der Erzeugung angegeben werden, da der Name als eindeutiger Referenznamen verwendet wird.
$expireTime Zeitpunkt des Ablaufs der Gültigkeit. Diese optionale Angabe definiert die Lebenszeit des Cookies. Standard ist 1 Tag.
$domain Domain, für die das Cookie gültig ist. Als Standard-Wert wird die aktuell genutzte Domain verwendet.
$path Pfad unterhalb der angegebenen Domain für die das Cookie gültig ist. Standard-Wert ist / - sprich alles unterhalb der angegebenen Domain.
$secure Definiert, ob das Cookie nur bei sicherer Verbindung (HTTPS) übertragen wird (true) oder nicht (false). Standard-Wert ist false.
$httpOnly Definiert, ob das Cookie per Java-Script verändert werden darf (false) oder nicht (true). Standard-Wert ist false.

Um ein Cookie zu erzeugen bzw. zu lesen können Sie im einfachsten Fall folgenden Code nutzen:

PHP-Code
$cookie = new Cookie('name_des_cookies'); $tenDaysInSeconds = 60 * 60 * 24 * 10; $cookie = new Cookie( 'name_des_cookies', time() + $tenDaysInSeconds );

Je nach Anforderung lassen sich mit den im Konstruktor als optional deklarierten Parametern weitere Konfigurationen realisieren. Beispiel:

PHP-Code
$tenDaysInSeconds = 60 * 60 * 24 * 10; $cookie = new Cookie( 'name_des_cookies', time() + $tenDaysInSeconds, '.adventure-php-framework.org', '/Seite', true, true );

Das in der letzten Code-Box definierte, sichere Cookie ist für die Domain adventure-php-framework.org und alle ihre Sub-Domains sowie darunter jedoch nur für den Pfad /Seite gültig. Weiterhin darf das Cookie nicht per Java-Script manipuliert werden.

2. Auslesen eines Cookies

Zum Auslesen des Cookies können Sie die Methode getValue() der Klasse Cookie nutzen. Dieser kann optional ein Standard-Wert übergeben werden. Beispiel:

PHP-Code
$cookie = new Cookie('name_des_cookies'); $value = $cookie->getValue();

Ist das Cookie nicht vorhanden, wird der Standart-Wert zurück geliefert. Möchten Sie zur Vereinfachung der Implementierung den Standard-Wert verändern, nutzen Sie bitte das optionale Argument der Methode getValue(). In allen anderen Fällen erhalten Sie den Wert des Cookies.

3. Schreiben von Inhalten

Um ein Cookie mit einem Wert zu füllen, nutzen Sie bitte die Methode setValue():

PHP-Code
$cookie = new Cookie('name_des_cookies'); $cookie->setValue('wert_des_cookies');

Beim Setzen eines Wertes wird das Cookie automatisch angelegt.

Bitte beachten Sie, dass der Wert eines Cookies vom Typ string ist. Beabsichtigen Sie komplexere Strukturen zu speichern, müssen Sie selbst für die De- und Encodierung sorgen. Hierzu können beispielsweise die Funktionen serialize() und unserialize() genutzt werden.
Bitte beachten Sie weiterhin, dass die Größe von Cookies direkten Einfluss auf die Anfrage-Performance hat, da Cookies im HTTP-Anfragen mitgeliefert werden. Achten Sie daher immer auf eine möglichst kleine Datenmenge. Die Datenmenge kann beispielsweise durch ein eigenes, komprimiertes Datenformat oder durch Nutzung von Komprimierungsfunktionen erreicht werden.

4. Löschen eines Cookies

Möchten Sie ein Cookie löschen, so steht Ihnen die Funktion delete() zur Verfügung:

PHP-Code
$cookie = new Cookie('name_des_cookies'); $cookie->delete();

Ab der nächsten Anfrage ist das Cookie nicht mehr vorhanden. Die Methode getValue() wird daher den Standard-Wert zurück liefern.

Kommentare

Möchten Sie den Artikel eine Anmerkung hinzufügen, oder haben Sie ergänzende Hinweise? Dann können Sie diese hier einfügen. Die bereits verfassten Anmerkungen und Kommentare finden Sie in der untenstehenden Liste.
Für diesen Artikel liegen aktuell keine Kommentare vor.