Lektion 13: Cookies

Wie und welche Art an Informationen Webseiten über ihre Nutzer sammeln, und im Speziellen, wie sie diese verwenden, ist ein heikles Thema. Cookies werden of als Beispiel angeführt, wie Informationen gesammelt werden und so eine Bedrohung Ihrer Privatsphäre darstellen. Aber gibt es Gründe besorgt zu sein? Entscheiden Sie selbst. Wenn Sie diese Lektion durchgearbeitet haben, werden Sie wissen, was mit Cookies gemacht werden kann.

Was ist ein Cookie?

Ein Cookie ist eine kleine Textdatei, in die eine Webseite unterschiedliche Informationen speichern kann. Cookies werden auf der Festplatte des Nutzers gespeichert, nicht auf dem Server.

Die meisten Cookies verfallen (löschen sich selbst) nach einer vorher festgelegten Zeitspanne, die von einer Minute bis hin zu mehreren Jahren dauern kann. Aber auch der Nutzer selber kann die Cookies auf seinem Rechner auffinden und löschen.

Die meisten Browser, also Microsoft Internet Explorer, Mozilla Firefox, Google Chrome usw., können so konfiguriert werden, dass der Nutzer wählen kann, ob er einen Cookie akzeptieren möchte oder ob nicht. Warum soll man dann nicht einfach prinzipiell alle Cookies ablehnen? Dies ist möglich. Aber viele Webseiten würden ohne Cookies nicht wie gedacht funktionieren, da Cookies in vielerlei Hinsicht dazu benutzt werden, die Bedienbarkeit und Funktionalität einer Webseite zu verbessern.

Wie werden die Informationen in einem Cookie gespeichert?

Es ist einfach, einen Cookie in PHP mit Dokumentationsetcookie zu setzen oder zu ändern. Im ersten Beispiel werden wir einen Cookie erstellen und einen Wert speichern.

Zuerst braucht der Cookie einen Namen. In diesem Beispiel werden wir den Namen "HTMLtest" verwenden. Dann setzen Sie den Wert, nämlich so:


	<?php 

	// Den Cookie setzen
	setcookie("HTMLTest", "Das ist ein Test-Cookie");   

	?> 

	

Standardmäßig wird der Cookie beibehalten, bis der Browser geschlossen wird. Das kann aber einfach geändert werden, indem man einen weiteren Parameter, den "Ablaufzeitpunkt", hinzufügt:


	<?php 

	// Den Cookie setzen
	setcookie("Name", "C. Wing, time()+3600);   
	setcookie("Interessen", "Flugzeuge beobachten", time()+3600); 
	
	?>
	
	

"time()+3600" legt hierbei fest, dass der Cookie in 3600 Sekunden (= 60 Minuten) - ab jetzt - ablaufen soll.

In dem obigen Beispiel haben wir den Namen des Nutzers und seine Interessen gespeichert. Diese Information kann z.B. nützlich sein, um eine Webseite speziell auf den individuellen Nutzer auszurichten.

Wie bekommt man die Informationen aus dem Cookie?

Um den Wert eines Cookies zu erhalten benutzt man Dokumentation$_COOKIE. Wenn wir z.B. die Informationen aus unserem obigen Beispiel benötigen, machen wir das so:


	<?php 

	// Werte des Cookies auslesen
	$strName = $_COOKIE["Name"];   
	$strInterest = $_COOKIE["Interessen"];
	 
	// Auf dem Client ausgeben
	echo "<p>" . strName . "</p>"   
	echo "<p>Ihre Interessen sind . " strInterest . "</p>"
	
	?>
	
	

Wer kann das Cookie lesen?

Standardmäßig kann ein Cookie nur von der gleichen (sog.) Second-Level-Domain (z.B. html.net) gelesen werden, von der aus das Cookie erstellt wurde. Aber mit den Parametern domain und path können Sie dem Cookie weitere Restriktionen auferlegen. Hierzu benutzen Sie die folgende Syntax:

	
	setcookie(Name, Wert, Ablaufzeit, Pfad, Domain);
	
	

Schauen wir uns ein Beispiel an:

	
	<?php
	
	// Setzen des Cookies: Name, Wert, Ablaufzeit, Pfad, Domain
	setcookie("Name", "C. Wing", time()+60*60*24*365, "/tutorials/php/", "www.html.net");   
	?>
	
	

Im Beispiel oben haben wir ein Cookie, welches wir "Name" genannt haben, mit dem Wert "C. Wing" gesetzt. Das Cookie läuft nach einem Jahr aus (60 Sekunden * 60 Minuten * 24 Stunden * 365 Tage) und kann nur von Seiten ausgelesen werden, die sich im Verzeichnis "/tutorials/php/" auf der (Sub-)Domain "www.html.net" befinden.

Beispiel eines Cookies

Wir können probieren, ein einfaches Cookie auf Ihrem Computer zu speichern und schauen dann, wie es aussieht.

Der folgende Code setzt das Cookie:


	<?php 

	// Setzen des Cookies
	setcookie("HTMLTest", "Dieser Text ist in einem Cookie", time()+60*60*24, "/tutorials/php/", "www.html.net");   
	 
	// Schreiben der Information auf den Clientrechner
	echo $_COOKIE ["HTMLTest"];    

	?>
	
	

Das Cookie wird auf Ihrer Festplatte gespeichert. Abhängig davon, welches Betriebssystem Sie benutzen, können Ihre Cookies an unterschiedlichen Stellen auf Ihrer Festplatte gespeichert werden. Wenn Sie diese lokalisiert haben, sollte es etwa so aussehen:

Windows Explorer - Ordner Cookies

Wie Sie sehen ist ein Cookie eine normale Textdatei, die z.B. mit dem Editor (Notepad) öffnen kann. Der Inhalt des Cookies, welches wir eben erstellt haben, sehen wahrscheinlich so aus:


	HTMLTest TEXT=Dieser+Text+ist+in+einem+Cookie% 21 www.html.net/tutorials/php 0 80973619229399148 4216577264 29399141 * 
	
	

Wir werden nicht näher auf diese Zahlenfolgen eingehen, aber Sie erkennen hoffentlich, dass der Benutzer die volle Kontrolle über die Cookies auf seinem Computer hat.

In dieser Lektion haben wir uns angeschaut, was Cookies machen können und wofür man sie benutzen kann. Es existiert eine verbreitete Verunsicherung, dass manche Seiten Cookies für unangebrachte Aktivitäten verwenden. In den meisten Fällen werden Cookies aber dazu verwendet, Seiten benutzerfreundlicher oder relevanter für den einzelnen Nutzer zu gestalten.

Wenn Sie sich dafür entscheiden sollten, auf Ihrer Seite Cookies zu verwenden, ist es wahrscheinlich eine gute Idee, die Ihren Besuchern mitzuteilen. Dieses kann z.B. in Ihrer Datenschutzrichtlinie oder im Registrierungsprozess erfolgen.



<< Lektion 12: Sessions (Sitzungen)

Lektion 14: Filesystem-Funktionen (Dateisystem) >>