This sample uses keys within the cookie to store the data. One cookie is stored on the client, but it contains more than one value. The name, count, text color, and background color values are stored as keys within the cookie.
To see where the cookie and keys stored within it are being set and retrieved, look at the highlighted sections of the ASP source code:
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
Sub WriteHTMLHeader
Response.Write "<HTML>"
Response.Write "<HEAD><TITLE>Cookies Sample</TITLE></HEAD>"
End Sub
Sub WriteHTMLFooter
Response.Write "</BODY>"
Response.Write "</HTML>"
End Sub
Sub WriteNamePrompt
Response.Write "<FONT FACE=Verdana,Arial SIZE=2>"
Response.Write "Your name (need to enter something here): "
Response.Write "<INPUT TYPE=TEXT SIZE=40 MAXLENGTH=40 NAME=""name"">"
Response.Write "</FONT>"
End Sub
Sub WriteColorPrompts(textColor)
Response.Write "<FONT FACE=Verdana,Arial SIZE=2>"
Response.Write "<P>"
Response.Write "<TABLE COLS=2 BORDER=0>"
Response.Write "<TR VALIGN=TOP><TD NOWRAP>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textcolor & ">"
Response.Write "Select your preferred text color: "
Response.Write "<TD>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textcolor & ">"
Response.Write "<INPUT TYPE=RADIO NAME=""textcolor"" VALUE=""#000000"">Black"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""textcolor"" VALUE=""#00008B"">Dark Blue"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""textcolor"" VALUE=""#DEB887"">Burlywood"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""textcolor"" VALUE=""#2F4F4F"">Dark Slate Gray"
Response.Write "</TR></TABLE>"
Response.Write "<P>"
Response.Write "<TABLE COLS=2 BORDER=0>"
Response.Write "<TR VALIGN=TOP><TD NOWRAP>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textcolor & ">"
Response.Write "<P>Select your preferred background color: "
Response.Write "<TD>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textcolor & ">"
Response.Write "<INPUT TYPE=RADIO NAME=""bgcolor"" VALUE=""#000000"">Black"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""bgcolor"" VALUE=""#00008B"">Dark Blue"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""bgcolor"" VALUE=""#DEB887"">Burlywood"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""bgcolor"" VALUE=""#2F4F4F"">Dark Slate Gray"
Response.Write "</TR></TABLE>"
Response.Write "</FONT>"
End Sub
Sub WriteColorPrompts2(textColor)
Response.Write "<FONT FACE=Verdana,Arial SIZE=2>"
Response.Write "<P>"
Response.Write "<TABLE COLS=2 BORDER=0>"
Response.Write "<TR VALIGN=TOP><TD NOWRAP>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textColor & ">"
Response.Write "Change your preferred text color: "
Response.Write "<TD>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textcolor & ">"
Response.Write "<INPUT TYPE=RADIO NAME=""textcolor"" VALUE=""#000000"">Black"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""textcolor"" VALUE=""#00008B"">Dark Blue"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""textcolor"" VALUE=""#DEB887"">Burlywood"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""textcolor"" VALUE=""#2F4F4F"">Dark Slate Gray"
Response.Write "</TR></TABLE>"
Response.Write "<P>"
Response.Write "<TABLE COLS=2 BORDER=0>"
Response.Write "<TR VALIGN=TOP><TD NOWRAP>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textColor & ">"
Response.Write "Change your preferred background color: "
Response.Write "<TD>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textcolor & ">"
Response.Write "<INPUT TYPE=RADIO NAME=""bgcolor"" VALUE=""#7FFFD4"">Aquamarine"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""bgcolor"" VALUE=""#F5F5DC"">Beige"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""bgcolor"" VALUE=""#008000"">Green"
Response.Write "<BR>"
Response.Write "<INPUT TYPE=RADIO NAME=""bgcolor"" VALUE=""#FFFACD"">Lemon Chiffon"
Response.Write "</TR></TABLE>"
Response.Write "</FONT>"
End Sub
Sub WriteColorForm(textColor)
Response.Write "<P><HR>"
Response.Write "Feel free to change your preferences at any time:<P>"
Response.Write "<FORM NAME=""preferences"" METHOD=POST ACTION=""cookies.asp"">"
WriteColorPrompts2 textColor
Response.Write "<P><INPUT TYPE=SUBMIT VALUE=""Save Changes"">"
Response.Write "</FORM>"
End Sub
Sub WriteCompleteForm(textColor)
WriteHTMLHeader
Response.Write "<BODY BGCOLOR=#FFFFFF>"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2>"
Response.Write "Hi there! Please enter the information below, so this page can be customized for you:"
Response.Write "</FONT>"
Response.Write "<FORM METHOD=POST ACTION=""cookies.asp"">"
WriteNamePrompt
WriteColorPrompts textColor
Response.Write "<P><INPUT TYPE=SUBMIT VALUE=""Submit Form""><INPUT TYPE=RESET VALUE=""Reset Form"">"
Response.Write "</FORM>"
WriteHTMLFooter
End Sub
Sub DoFirstTimeWelcome(name, count, textColor, bgColor)
WriteHTMLHeader
Response.Write "<BODY BGCOLOR=" & bgColor & ">"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textColor & ">"
Response.Write "Welcome to this page, " & name & "!"
WriteColorForm textColor
WriteHTMLFooter
End Sub
Sub DoWelcomeBack(name, count, textColor, bgColor)
WriteHTMLHeader
Response.Write "<BODY BGCOLOR=" & bgColor & ">"
Response.Write "<FONT FACE=Verdana,Arial SIZE=2 COLOR=" & textColor & ">"
Response.Write "Hi, " & name & "! Welcome back. You have requested this page " & count & " times."
WriteColorForm textColor
WriteHTMLFooter
End Sub
Sub SetCookieValue(keyName, value)
' set the key for the cookie to new value
' and set expiration date
Response.Cookies("wmt")(keyName) = value
Response.Cookies("wmt").Expires = Date + 365
End Sub
</SCRIPT>
<%
' start of main script
' get current cookie values
cookieName = Request.Cookies("wmt")("name")
cookieCount = Request.Cookies("wmt")("count")
cookieTextColor = Request.Cookies("wmt")("textcolor")
cookieBgColor = Request.Cookies("wmt")("bgcolor")
' get form inputs
Set formName = Request.Form("name")
Set formTextColor = Request.Form("textcolor")
Set formBgColor = Request.Form("bgcolor")
Set formRemove = Request.Form("remove")
' if cookie has not been set, or form is empty,
' prompt for user name and preferences
If cookieName = "" And formName = "" Then
WriteCompleteForm ""
ElseIf cookieName = "" Then
' form is not empty but cookie has not be set,
' so set cookie values
SetCookieValue "name", formName
' if no text color specified, use black
If formTextColor = "" Then formTextColor = "#000000"
SetCookieValue "textcolor", formTextColor
' if no background color specified, use white
If formBgColor = "" Then formBgColor = "#FFFFFF"
SetCookieValue "bgcolor", formBgColor
SetCookieValue "count", 2
' show first time welcome message
DoFirstTimeWelcome formName, 0, formTextColor, formBgColor
Else
' this is a return visitor, so get their preferences
tempTextColor = cookieTextColor
tempBgColor = cookieBgColor
' if they have changed their text color preference, change corresponding
' cookie key
If formTextColor.Count = 1 Then tempTextColor = formTextColor _
: SetCookieValue "textcolor", formTextColor
' if they have changed their background color preference, change
' corresponding cookie key
If formBgColor.Count = 1 Then tempBgColor = formBgColor _
: SetCookieValue "bgcolor", formBgColor
' increment count of visits and change its cookie key
newCount = cookieCount + 1
SetCookieValue "count", newCount
' show welcome back message
DoWelcomeBack cookieName, newCount, tempTextColor, tempBgColor
End If
%>
© 1999 Microsoft Corporation. All rights reserved. Terms of use.