Viele Gr��e
Hubert Daubmeier
Die Cookies-Auflistung legt den Wert eines Cookies fest. Wenn das angegebene Cookie nicht existiert, wird es erstellt. Existiert das Cookie, nimmt es den neuen Wert an. Der alte Wert wird dadurch verworfen.
Syntax
Response.Cookies(cookie)[(key)|.attribute] = value
Parameter
- cookie
- Der Name des Cookies.
- key
- Ein optionaler Parameter. Wenn key angegeben ist, ist das Cookie
ein W�rterbuch, und key wird auf value gesetzt.
- attribute
- Gibt Informationen zu dem Cookie selbst an. Der attribute-Parameter
kann einen der folgenden Werte annehmen.
Name Beschreibung Domain Lesegesch�tzt. Wenn dieses Attribut angegeben ist, wird das Cookie nur nach Anforderungen gesendet, die sich an diese Dom�ne richten. Expires Lesegesch�tzt. Das Datum, an dem das Cookie abl�uft. Dieses Datum muss festgelegt werden, damit das Cookie nach dem Ende der Sitzung auf der Festplatte des Clients gespeichert wird. Wenn dieses Attribut nicht auf ein Datum festgelegt ist, das hinter dem aktuellen Datum liegt, l�uft das Cookie ab, sobald die Sitzung beendet wurde. HasKeys Schreibgesch�tzt. Gibt an, ob das Cookie Schl�ssel enth�lt. Path Lesegesch�tzt. Wenn dieses Attribut angegeben ist, wird das Cookie nur nach Anforderungen gesendet, die sich an diesen Pfad richten. Wenn dieses Attribut nicht festgelegt ist, wird der Pfad der Anwendung verwendet. Secure Lesegesch�tzt. Gibt an, ob das Cookie sicher ist.
- value
- Gibt den Wert an, der key oder attribute zugewiesen werden soll
Hinweise
Wenn ein Cookie mit einem Schl�ssel erstellt wird, wie im folgenden Skript,
<%
Response.Cookies("mycookie")("type1") = "sugar"
Response.Cookies("mycookie")("type2") = "ginger snap"
%>
wird dieser Header gesendet:
Set-Cookie:MYCOOKIE=TYPE1=sugar&TYPE2=ginger+snap
W�rde myCookie sp�ter ein Wert zugewiesen, ohne dass
dabei ein Schl�ssel angegeben wird, w�rden type1 und
type2 zerst�rt. Dies wird anhand des folgenden Beispiels
verdeutlicht.
<% Response.Cookies("myCookie") = "chocolate chip" %>
Im vorhergehenden Beispiel werden die Schl�ssel type1 und
type2 zerst�rt und deren Werte verworfen. Das Cookie
myCookie hat jetzt den Wert chocolate chip.
Umgekehrt gilt das Gleiche: Wenn Sie ein Cookie mit einem Schl�ssel aufrufen, werden alle Nicht-Schl�sselwerte zerst�rt, die das Cookie enthielt. Nehmen Sie z. B. an, Sie rufen Response.Cookies nach dem vorhergehenden Code wie folgt auf:
<% Response.Cookies("myCookie")("newType") = "peanut butter" %>
Der Wert chocolate chip wird verworfen, und newType
wird auf peanut butter gesetzt.
Wenn Sie ermitteln m�chten, ob ein Cookie �ber Schl�ssel verf�gt, verwenden Sie die folgende Syntax:
<%= Response.Cookies("myCookie").HasKeys %>
Handelt es sich bei myCookie um ein Cookiew�rterbuch, gibt
dieser Ausdruck den Wert TRUE zur�ck. Andernfalls gibt er den Wert FALSE
zur�ck.
Sie k�nnen eine Schleife verwenden, um Cookieattribute festzulegen. Sie k�nnen z. B. folgende Syntax verwenden, um alle Cookies so festzulegen, dass sie an einem bestimmten Datum ablaufen.
<%
For Each cookie in Response.Cookies
Response.Cookie(cookie).Expires = #July 4, 1997#
Next
%>
Dar�ber hinaus k�nnen Sie die Werte aller Cookies einer Auflistung oder alle Schl�ssel eines Cookies in einer Schleife durchlaufen. Wenn Sie jedoch versuchen, in einer Schleife die Werte eines Cookies zu durchlaufen, das �ber keine Schl�ssel verf�gt, wird nichts zur�ckgegeben. Um dies zu verhindern, k�nnen Sie zun�chst mithilfe der .HasKeys-Syntax pr�fen, ob das jeweilige Cookie �ber Schl�ssel verf�gt. Dies wird anhand des folgenden Beispiels verdeutlicht.
<%
If Not cookie.HasKeys Then
'Set the value of the cookie.
Response.Cookies(cookie) = ""
Else
'Set the value for each key in the cookie collection.
For Each key in Response.Cookies(cookie)
Response.Cookies(cookie)(key) = ""
Next
%>
Beispiel
Das folgende Beispiel verdeutlicht, wie Sie ein Cookie auf einen Wert festlegen und den Attributen des Cookies Werte zuweisen k�nnen.
<%
Response.Cookies("Type") = "Chocolate Chip"
Response.Cookies("Type").Expires = "July 31, 2001"
Response.Cookies("Type").Path = "/"
%>
---------------------------
�ber die Cookies-Auflistung k�nnen Sie die Werte der Cookies abrufen, die in einer HTTP-Anforderung gesendet wurden.
Syntax
Request.Cookies(cookie)[(key)|.attribute]
Parameter
- cookie
- Gibt das Cookie an, dessen Wert abgerufen werden soll.
- key
- Ein optionaler Parameter, mit dem Unterschl�sselwerte aus
Cookiew�rterb�chern abgerufen werden k�nnen.
- attribute
- Gibt Informationen zu dem Cookie selbst an. Der attribute-Parameter
kann folgenden Wert annehmen.
Name Beschreibung HasKeys Schreibgesch�tzt. Gibt an, ob das Cookie Schl�ssel enth�lt.
Hinweise
Sie k�nnen auf die Unterschl�ssel eines Cookiew�rterbuches zugreifen, indem Sie einen Wert f�r key angeben. Wird auf ein Cookiew�rterbuch zugegriffen, ohne dass ein Wert f�r key angegeben ist, werden alle Schl�ssel als eine Abfragezeichenfolge zur�ckgegeben. Wenn MyCookie z. B. zwei Schl�ssel (First und Second) hat und Sie keinen dieser Schl�ssel in einem Aufruf von Request.Cookies angeben, wird die folgende Zeichenfolge zur�ckgegeben:
First=firstkeyvalue&Second=secondkeyvalue
Wenn der Clientbrowser zwei Cookies gesendet hat, die denselben Namen haben, gibt Request.Cookies das Cookie zur�ck, das �ber die tiefere Pfadstruktur verf�gt. Wenn z. B. zwei Cookies denselben Namen haben, wobei das eine Cookie das Path-Attribut /www/ und das andere das Path-Attribut /www/home/ hat, sendet der Clientbrowser beide Cookies an das Verzeichnis /www/home/, wohingegen Request.Cookies nur das zweite Cookie zur�ckgibt.
Um zu ermitteln, ob es sich bei einem Cookie um ein Cookiew�rterbuch handelt (ob das Cookie �ber Schl�ssel verf�gt), k�nnen Sie folgendes Skript verwenden.
<%= Request.Cookies("myCookie").HasKeys %>
Wenn myCookie ein Cookiew�rterbuch ist, gibt dieser Ausdruck den
Wert TRUE zur�ck. Andernfalls gibt er den Wert FALSE zur�ck.
Sie k�nnen alle Cookies der Cookie-Auflistung oder alle Schl�ssel eines Cookies in einer Schleife durchlaufen. Wenn Sie jedoch in einer Schleife die Schl�ssel eines Cookies durchlaufen, das �ber keine Schl�ssel verf�gt, wird keinerlei Ausgabe erzeugt. Sie k�nnen eine solche Situation verhindern, indem Sie mit der Syntax .HasKeys zun�chst pr�fen, ob das jeweilige Cookie �ber Schl�ssel verf�gt. Dies wird anhand des folgenden Beispiels verdeutlicht:
<%
For Each strKey In Request.Cookies
Response.Write strKey & " = " & Request.Cookies(strKey) & "<BR>"
If Request.Cookies(strKey).HasKeys Then
For Each strSubKey In Request.Cookies(strKey)
Response.Write "->" & strKey & "(" & strSubKey & ") = " & _
Request.Cookies(strKey)(strSubKey) & "<BR>"
Next
End If
Next
%>
Beispiel
Im folgenden Beispiel wird der Wert von myCookie auf einer Webseite gedruckt.
Here is the value of the cookie named myCookie:
<%= Request.Cookies("myCookie") %>
Anmerkung Cookies sind ausf�hrlich in der Spezifikation "HTTP State Management" beschrieben, die in der World Wide Web Consortium-Website verf�gbar ist.
