Je nach Anlaß wird ein Cookie irgendwo auf einer HTML-Seite aktiviert werden, entweder aus einem Formular heraus oder automatisch beim Anzeigen der Seite.
Zum Schreiben oder Lesen dient stets das Schlüsselwort "cookie". Beim Schreiben gehen die Browser unterschiedlich vor. Bei Netscape wird eine Datei "cookies.txt" angelegt, die zeilenweise organisiert ist und neben einem Ablaufdatum Einträge der Art "Bezeichner Wert" enthält. Der Explorer dagegen schreibt eine Textdatei, deren Name aus der URL des Senders gebildet wird. Beide registrieren nicht den Namen der aufrufenden Seite sondern den des Ordners, in dem sie sich befinden.
Es ist empfehlenswert, die Routine zum Schreiben eines Cookies als JavaScript-Funktion im Head zu definieren.
Der Code enthält hier im Beispiel einen Werteintrag und denjenigen der Ablaufzeit. Anzugeben ist mit "Dauer" die Gültigkeitsdauer in Tagen:
<script language="JavaScript"> function CookieSetz(Bezeichner,Wert,Dauer) { jetzt=new Date(); Auszeit=new Date(jetzt.getTime()+Dauer*86400000); document.cookie=Bezeichner+"="+Wert+";expires="+Auszeit.toGMTString()+";"; } </script> |
Wenn beim Drücken der Taste nichts geschieht, überprüfen Sie bitte die Sicherheitseinstellungen Ihres Browsers. Cookies müssen natürlich (wenigstens zum Testen) "akzeptiert" werden.
Die folgende Funktion liest ein Cookie. Wenn von der Seite aus schon ein Cookie geschrieben wurde, wird dessen Wert ermittelt. Wenn kein Cookie geschrieben wurde, ist der Rückgabewert leer.
Mit der Abfrage if(document.cookie) ermittelt die Funktion, ob bereits ein Cookie vorhanden ist. Die Ermittlung von Wertstart und Wertende im ersten Codebeispiel sichert, daß nur der Wert, aber nicht der Bezeichner zurückgemeldet wird. Diese Auswahl kann aber genausogut am ausgelesenen Wert des kompletten Cookies geschehen, siehe 2. Codevorschlag.
<script language="JavaScript"> function CookieLesen() { Wert = ""; if(document.cookie) { Wertstart = document.cookie.indexOf("=") + 1; Wertende = document.cookie.indexOf(";"); if(Wertende == -1) Wertende = document.cookie.length; Wert = document.cookie.substring(Wertstart,Wertende); } return Wert; } </script> <script language="JavaScript"> |
<script language="JavaScript"> var Wert = ""; if(document.cookie) { Wert = document.cookie; Wert = Wert.slice(Wert.indexOf("=")+1,Wert.length); } document.write("<link rel=stylesheet type='text/css' href='" + Wert+"'>" ); </script> |
Die letzte Zeile erzeugt den Ladebefehl in HTML, der noch innerhalb des <head>-Bereiches stehen muß, damit er berücksichtigt wird.