Cookies

Ein Cookie (amer. = Keks) ist eine Datei, die JavaScript auf den Anwenderrechner schreiben kann. Wohin, bestimmt der Browser des Anwenders. Cookies sind in ihrem Umfang begrenzt und können nur Variablenwerte speichern. Ausführbaren Code, der irgendwelchen Unsinn anstellen könnte, können sie nicht enthalten. Es gibt eine Reihe von sinnvollen Anwendungen. Bei allen Cookie-Anwendungen muß man wissen, daß Browser auf Wunsch die Annahme von Cookies verweigern können. Viele User nutzen diese Möglichkeit.

 


Cookie schreiben

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.

Cookie lesen

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">
   function CookieLesen()
   {
      Wert = "";
      if(document.cookie)
      {
      Wert = document.cookie;
      Wert = Wert.slice(Wert.indexOf("=")+1,Wert.length);
      }
   return Wert;
   }
</script>

Cookies nutzen

  • Cookies können genutzt werden, um einen Zähler zu speichern, der die Zugriffe eines Nutzers zählt. Genauer ausgedrückt: Wann immer Horst Meier auf meine Seite zugreift, lese ich das von mir früher auf seinem Rechner gesetzte Cookie, dort steht ein Zahlenwert, den ich um 1 erhöhe und dann wieder schreibe.
  • Die Zählung allein macht es nicht, oft werden Cookies von kommerziellen Anbietern genutzt, um z.B. eine beim ersten Besuch erfolgte Befragung des Nutzers (Z.B. Kreditkartennummer!) beim zweiten oder weiteren Besuchen zu umgehen.
  • Cookies bieten eine Möglichkeit, Parameterwerte von Seite zu Seite eines Anbieters zu übergeben. Ein denkbarer Fall wäre, daß auf einer Startseite CSS-Dateien zur Auswahl gestellt werden. Auf die gewählte Datei, deren Name in ein Cookie geschrieben worden ist, kann anschließend die gesamte Präsentation zugreifen. Wie es funktioniert?
  • Erst das Cookie setzen. Das kann geschehen in einem Formular, das eine Auswahl zwischen Gestaltungsstilen anbietet. In das Cookie wird der Name der ausgewählten CSS-Datei (inklusive Pfad) geschrieben. Soweit kein Problem. Dann wird die nächste Seite der Präsentation aufgerufen. Sie erhält im head-Teil, ebenso wie alle weiteren zur Präsentation gehörigen Seiten, den folgenden Eintrag:
     

    <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-Bereiches stehen muß, damit er berücksichtigt wird.

Dieses Tutorial wurde bereitgestellt von Prof. Dr. Rolf Hirte, Technische Fachhochschule Wildau. Vielen Dank an dieser Stelle!
Viel Spass beim Lernen und beim Erstellen eigener JavaScripts.