Java Script

Cookies

Cookies

Da HTTP ein sog. zustandsloses Protokoll ist, also lediglich das Versenden einer Seite auf eine Anfrage hin organisiert, ist es nicht möglich einen Nutzer über mehrere Anfragen hinweg zu identifizieren. Dies ist aber nötig, will man eine Seite mit einem Login schützen oder einen Warenkorb erstellen. Dann muss gewährleistet werden, das bekannt ist, ob der Nutzer sich bei einer vorherigen Anfrage eingeloogt hat oder nicht.

Eine mögliche Lösung dafür sind Cookies. Cookies sind kleine Textinformationen, die auf dem Client-Rechner gespeichert werden. (Die meisten Browser haben dafür entsprechende Einstellungen. Bei Firefox: Einstellungen > Datenschutz)

Ein Cookie kann maximal 4kB groß werden. Da der jeweilige Browser die Daten speichert sind Cookies nicht browserübergreifend.

Cookies bestehen aus mindestens einem Name/Wert-Paar.

Mögliche Felder sind:

name Name des Cookies
Wird ein bereits existierender Name verwendet, wird das alte Cookie überschrieben.
domain

Gibt den Server an, die dieses Cookie lesen darf.
Sollen mehrere Server einer Domain darauf zugreifen dürfen, kann die Angabe wie folgt lauten: ".leuphana.de"

expires Gültigkeitsende des Cookies (Oft wird die Grenze hier sehr hoch gesetzt um den Nutzer möglichst lange verfolgen zu können.)
Ohne Ablaufdatum lebt das Cookie nur so lange wie der Browser geöffnet ist
Das Datum muss im GMT-Format angegeben werden. In JavaScript also ein Fall für die toGMTString()-Methode.
path Nur die Seiten, die in diesem Pfad liegen können das Cookie lesen.
"/" bedeutet von allen Verzeichnissen aus.
secure Dieser Parameter hat keinen Wert.
Ist es gesetzt, darf das Cookie nur per HTTPS gelesen wedren.

Syntax: Die Felder werden mit Semikolon und Leerzeichen getrennt. Beispiel:

Name=test%20Cookie; domain=.leuphana.de

Cookie setzen durch folgende Anweisung:

document.cookie="...";

Cookie lesen durch:

var cookie_string = document.cookie;

Hier Beispiel 18, das einen einfachen Zähler implementiert, die anzeigt wie oft die Seite bereits besucht wurde:

<html>
<head>

<title>Pers&ouml;nliche Seitenbesuche z&auml;hlen mit Cookies</title>

<script type="text/javascript">

function WertHolen () {
var Wert = "";
if (document.cookie) {
var Wertstart = document.cookie.indexOf("=") + 1;
var Wertende = document.cookie.indexOf(";");
if (Wertende == -1)
Wertende = document.cookie.length;
Wert = document.cookie.substring(Wertstart, Wertende);
}
return Wert;
}


function WertSetzen (Bezeichner, Wert, Verfall) {
var jetzt = new Date();
var Auszeit = new Date(jetzt.getTime() + Verfall);
document.cookie = Bezeichner + "=" + Wert + "; expires=" + Auszeit.toGMTString() + ";";
}


function Zaehlerstand () {
var Verfallszeit = 1000 * 60 * 60 * 24 * 365;
var Anzahl = WertHolen();
var Zaehler = 0;
if (Anzahl != "")
Zaehler = parseInt(Anzahl);
Zaehler = Zaehler + 1;
WertSetzen("Zaehler", Zaehler, Verfallszeit);
return (Zaehler);
}

</script>

</head>


<body>
<h1>Eine Seite, die etwas &uuml;ber Sie wei&szlig;...</h1>

<script type="text/javascript">
var x = Zaehlerstand();
document.write("<p>Dies ist Ihr <b>" + x + ".<\/b> Besuch auf dieser Seite!<\/p>");
</script>

<p>Benutzen Sie doch mal die Reload-Funktion Ihres Browsers ...</p>

</body>
</html>