JavaScript und Cookies
Was sind Cookies?
Webbrowser und Server verwenden das HTTP-Protokoll für die Kommunikation, und HTTP ist ein zustandsloses Protokoll. Für eine kommerzielle Website ist es jedoch erforderlich, Sitzungsinformationen zwischen verschiedenen Seiten zu verwalten. Beispielsweise endet eine Benutzerregistrierung nach Abschluss vieler Seiten. Aber wie man die Sitzungsinformationen der Benutzer auf allen Webseiten verwaltet.
In vielen Situationen ist die Verwendung von Cookies die effizienteste Methode, um Einstellungen, Einkäufe, Provisionen und andere Informationen zu speichern und zu verfolgen, die für eine bessere Besuchererfahrung oder Site-Statistiken erforderlich sind.
Wie es funktioniert ?
Ihr Server sendet einige Daten in Form eines Cookies an den Browser des Besuchers. Der Browser akzeptiert möglicherweise das Cookie. In diesem Fall wird es als Nur-Text-Datensatz auf der Festplatte des Besuchers gespeichert. Wenn der Besucher nun eine andere Seite Ihrer Website erreicht, sendet der Browser dasselbe Cookie zum Abrufen an den Server. Nach dem Abrufen weiß Ihr Server, was zuvor gespeichert wurde.
Cookies sind ein Nur-Text-Datensatz mit 5 Feldern variabler Länge.
Expires- Das Datum, an dem der Cookie abläuft. Wenn dies leer ist, läuft das Cookie ab, wenn der Besucher den Browser verlässt.
Domain - Der Domainname Ihrer Site.
Path- Der Pfad zu dem Verzeichnis oder der Webseite, in dem das Cookie gesetzt wurde. Dies kann leer sein, wenn Sie das Cookie aus einem beliebigen Verzeichnis oder einer beliebigen Seite abrufen möchten.
Secure- Wenn dieses Feld das Wort "sicher" enthält, kann das Cookie nur mit einem sicheren Server abgerufen werden. Wenn dieses Feld leer ist, besteht keine solche Einschränkung.
Name=Value - Cookies werden in Form von Schlüssel-Wert-Paaren gesetzt und abgerufen
Cookies wurden ursprünglich für die CGI-Programmierung entwickelt. Die in einem Cookie enthaltenen Daten werden automatisch zwischen dem Webbrowser und dem Webserver übertragen, sodass CGI-Skripte auf dem Server Cookie-Werte lesen und schreiben können, die auf dem Client gespeichert sind.
JavaScript kann Cookies auch mit dem manipulieren cookie Eigentum der DocumentObjekt. JavaScript kann die Cookies lesen, erstellen, ändern und löschen, die für die aktuelle Webseite gelten.
Cookies speichern
Die einfachste Möglichkeit, ein Cookie zu erstellen, besteht darin, dem document.cookie-Objekt einen Zeichenfolgenwert zuzuweisen.
document.cookie = "key1 = value1;key2 = value2;expires = date";
Hier das expiresAttribut ist optional. Wenn Sie diesem Attribut ein gültiges Datum oder eine gültige Uhrzeit zuweisen, läuft das Cookie an einem bestimmten Datum oder einer bestimmten Uhrzeit ab, und danach ist der Wert der Cookies nicht mehr verfügbar.
Note- Cookie-Werte dürfen keine Semikolons, Kommas oder Leerzeichen enthalten. Aus diesem Grund möchten Sie möglicherweise JavaScript verwendenescape()Funktion zum Codieren des Werts vor dem Speichern im Cookie. In diesem Fall müssen Sie auch das entsprechende verwendenunescape() Funktion, wenn Sie den Cookie-Wert lesen.
Beispiel
Versuche Folgendes. Es setzt einen Kundennamen in einem Eingabe-Cookie.
<html>
<head>
<script type = "text/javascript">
<!--
function WriteCookie() {
if( document.myform.customer.value == "" ) {
alert("Enter some value!");
return;
}
cookievalue = escape(document.myform.customer.value) + ";";
document.cookie = "name=" + cookievalue;
document.write ("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>
</head>
<body>
<form name = "myform" action = "">
Enter name: <input type = "text" name = "customer"/>
<input type = "button" value = "Set Cookie" onclick = "WriteCookie();"/>
</form>
</body>
</html>
Ausgabe
Jetzt hat Ihre Maschine einen Cookie namens name. Sie können mehrere Cookies mit mehreren durch Komma getrennten Schlüssel-Wert-Paaren setzen.
Cookies lesen
Das Lesen eines Cookies ist genauso einfach wie das Schreiben eines Cookies, da der Wert des document.cookie-Objekts das Cookie ist. Sie können diese Zeichenfolge also immer dann verwenden, wenn Sie auf das Cookie zugreifen möchten. Die Zeichenfolge document.cookie enthält eine Liste von Name / Wert-Paaren, die durch Semikolons getrennt sindname ist der Name eines Cookies und value ist sein Zeichenfolgenwert.
Sie können Zeichenfolgen verwenden split() Funktion zum Aufteilen einer Zeichenfolge in Schlüssel und Werte wie folgt:
Beispiel
Versuchen Sie das folgende Beispiel, um alle Cookies zu erhalten.
<html>
<head>
<script type = "text/javascript">
<!--
function ReadCookie() {
var allcookies = document.cookie;
document.write ("All Cookies : " + allcookies );
// Get all the cookies pairs in an array
cookiearray = allcookies.split(';');
// Now take key value pair out of this array
for(var i=0; i<cookiearray.length; i++) {
name = cookiearray[i].split('=')[0];
value = cookiearray[i].split('=')[1];
document.write ("Key is : " + name + " and Value is : " + value);
}
}
//-->
</script>
</head>
<body>
<form name = "myform" action = "">
<p> click the following button and see the result:</p>
<input type = "button" value = "Get Cookie" onclick = "ReadCookie()"/>
</form>
</body>
</html>
Note - Hier length ist eine Methode von ArrayKlasse, die die Länge eines Arrays zurückgibt. Wir werden Arrays in einem separaten Kapitel behandeln. Versuchen Sie bis dahin bitte, es zu verdauen.
Note- Möglicherweise sind bereits andere Cookies auf Ihrem Computer gesetzt. Der obige Code zeigt alle auf Ihrem Computer gesetzten Cookies an.
Festlegen des Ablaufdatums für Cookies
Sie können die Lebensdauer eines Cookies über die aktuelle Browsersitzung hinaus verlängern, indem Sie ein Ablaufdatum festlegen und das Ablaufdatum im Cookie speichern. Dies kann durch Einstellen von erfolgen‘expires’ Attribut zu einem Datum und einer Uhrzeit.
Beispiel
Versuchen Sie das folgende Beispiel. Es zeigt, wie Sie das Ablaufdatum eines Cookies um 1 Monat verlängern können.
<html>
<head>
<script type = "text/javascript">
<!--
function WriteCookie() {
var now = new Date();
now.setMonth( now.getMonth() + 1 );
cookievalue = escape(document.myform.customer.value) + ";"
document.cookie = "name=" + cookievalue;
document.cookie = "expires=" + now.toUTCString() + ";"
document.write ("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>
</head>
<body>
<form name = "myform" action = "">
Enter name: <input type = "text" name = "customer"/>
<input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
</form>
</body>
</html>
Ausgabe
Cookie löschen
Manchmal möchten Sie ein Cookie löschen, damit nachfolgende Versuche, das Cookie zu lesen, nichts zurückgeben. Dazu müssen Sie nur das Ablaufdatum auf eine Zeit in der Vergangenheit einstellen.
Beispiel
Versuchen Sie das folgende Beispiel. Es wird veranschaulicht, wie ein Cookie gelöscht wird, indem das Ablaufdatum auf einen Monat nach dem aktuellen Datum festgelegt wird.
<html>
<head>
<script type = "text/javascript">
<!--
function WriteCookie() {
var now = new Date();
now.setMonth( now.getMonth() - 1 );
cookievalue = escape(document.myform.customer.value) + ";"
document.cookie = "name=" + cookievalue;
document.cookie = "expires=" + now.toUTCString() + ";"
document.write("Setting Cookies : " + "name=" + cookievalue );
}
//-->
</script>
</head>
<body>
<form name = "myform" action = "">
Enter name: <input type = "text" name = "customer"/>
<input type = "button" value = "Set Cookie" onclick = "WriteCookie()"/>
</form>
</body>
</html>