国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > ASP > 正文

ASP中Cookie使用指南

2019-11-18 22:12:52
字體:
供稿:網(wǎng)友
我自己曾想寫一篇關(guān)于Cookie的文章,特別是Client端Script同Server端asp通過Cookie交互的問題可能會(huì)困擾大家。其實(shí)是如果你對(duì)Cookie有深入的理解,特別是對(duì)域和路徑的概念比較清晰的話,就不會(huì)有問題了。
另外想提示的一點(diǎn)是request.ServerVariables("HTTP_COOKIE")得到Cookie和Request.Cookies得到的結(jié)果可能會(huì)有所不同。大家思考一下為什么,會(huì)對(duì)ASP的學(xué)習(xí)提高有所幫助的。

Request.Cookies,粒子:

<TABLE BORDER="2">
<THEAD>
<TH>Cookie Name</TH>
<TH>Cookie Value</TH>
<TH>Cookie HasKeys</TH>
</THEAD>
<%
Dim Item
For Each Item in Request.Cookies
%>
<TR>
<TD><% = Item %></TD>
<TD><% = Request.Cookies(Item) %></TD>
<TD><% = Request.Cookies(Item).HasKeys %></TD>
</TR>
<TR>
<%
  If Request.Cookies(Item).HasKeys Then
    For Each strSubKey In Request.Cookies(Item)
%>
<TD>&bnsp;</TD>
<TD>&bnsp;</TD>
<TD><% = Request.Cookies(strKey)(strSubKey) %></TD>
<%
Next
End If
Next
%>
</TABLE>

request.ServerVariables("HTTP_COOKIE"),粒子:
<TABLE BORDER="2">
<THEAD>
<TH>Cookie Name</TH>
<TH>Cookie Value</TH>
</THEAD>
<%
Dim Item,sp,i,d
sp = split(request.ServerVariables("HTTP_COOKIE"),"; ",-1,1)
' Loop through the cookie collection displaying each cookie we find

For i=0 to UBound(sp)
d = split(cstr(sp(i)),"=",-1,1)
%>
<TR>
<TD><% = d(0) %></TD>
<TD><% if UBound(d)=1 then Response.Write(d(1)) else Response.Write "&nbsp;" %></TD>
</TR>
<%
Next
%>
</TABLE>
重粒子@Y2K0814
--------------------------------------------------------
下面是甘冀平翻譯的<ASP中Cookie使用指南>
原文出處:http://www.asptoday.com/articles/19990915.htm

   實(shí)際上,在web開發(fā)中,cookie僅僅是一個(gè)文本文件,當(dāng)用戶訪問站點(diǎn)時(shí),它就被存儲(chǔ)在用戶使用的計(jì)算機(jī)上,其中,保存了一些信息,當(dāng)用戶日后再次訪問這個(gè)站點(diǎn)時(shí),web可以將這些信息提取出來。

   盡管現(xiàn)在聽起來cookie沒有什么激動(dòng)人心的,但實(shí)際上利用它,你能實(shí)現(xiàn)許多有意義的功能!比如說:你可以在站點(diǎn)上放置一個(gè)調(diào)查問答表,詢問訪問者最喜歡的顏色和字體,然后根據(jù)這些定制用戶的web界面。并且,你還可以保存訪問者的登錄密碼,這樣,當(dāng)訪問者再次訪問這個(gè)站點(diǎn)時(shí),不用再輸入密碼進(jìn)行登錄。

   當(dāng)然,cookie也有一些不足。首先,由于利用cookie的功能可以編程實(shí)現(xiàn)一些不良企圖,所以大多數(shù)的瀏覽器中都有安全設(shè)定,其中可以設(shè)置是否允許或者接受cookie,因此這就不能保證隨時(shí)能使用cookie。再者,訪問者可能有意或者無意地刪除cookie。當(dāng)訪問者的機(jī)器遇到“藍(lán)屏”死機(jī)時(shí),或者重新格式化硬盤、安裝系統(tǒng)后,原來保存的cookie將全部丟失。最后一點(diǎn),有一些最初始的瀏覽器并不能支持cookie。

   利用cooklie能做什么?

   有2種使用cookie的基本方式:
1、將cookie寫入訪問者的計(jì)算機(jī)(使用 RESPONSE 命令)
2、從訪問者的計(jì)算機(jī)中取回cookie(使用 REQUEST 命令)

   創(chuàng)建cookie的基本語法

   Response.Cookies("CookieName")=value

   執(zhí)行下面的代碼將會(huì)在訪問者的計(jì)算機(jī)中創(chuàng)建一個(gè)cookie,名字=VisitorName,值=Ken
Response.Cookies("VisitorName")="Ken"

   執(zhí)行下面的代碼將會(huì)在訪問者的計(jì)算機(jī)中創(chuàng)建一個(gè)cookie,名字=VisitorName,值=表單中UserName的值
Response.Cookies("VisitorName")=Request.Form("UserName")

   讀取cookie的基本語法

   Request.Cookies("CookieName")

   可以將Request值當(dāng)作一個(gè)變量看待,執(zhí)行下面的代碼,將取回名字為KensCookie的cookie值,并存入變量MyVar:
MyVar=Request.Cookies("KensCookie")

   執(zhí)行下面的代碼,將判斷名字為KensCookie的cookie值是否為“Yes”:
If Request.Cookies("KensCookie")="Yes" then

   功能豐富的cookie

   你可以擴(kuò)展上面的代碼成為Cookie子關(guān)鍵值(CookieSubName),代碼如下:
Response.Cookies("VisitorName")("FirstName")="Ken"
Response.Cookies("VisitorName")("LastName")="Baumbach"

   講解例子前,最后討論2個(gè)概念:命令約定和使用到期時(shí)間。

   命名約定

   同其他變量的命名一樣,合適地、獨(dú)特地命名cookie,有利于在程序中前后連貫地使用它。你可以使用下面的1個(gè)或者2個(gè)cookie屬性進(jìn)行cookie變量的命名:

   域?qū)傩裕―omain):域?qū)傩员砻鱟ookie由哪個(gè)網(wǎng)站產(chǎn)生或者讀取,默認(rèn)情況下,cookie的域?qū)傩栽O(shè)置為產(chǎn)生它的網(wǎng)站,但你也可以根據(jù)需要改變它。相關(guān)代碼如下:Response.Cookies("CookieName").Domain = "www.mydomain.com"

   路徑屬性(Path):路徑屬性可以實(shí)現(xiàn)更多的安全要求,通過設(shè)置網(wǎng)站上精確的路徑,就能限制cookie的使用范圍。例如:
Response.Cookies("CookieName").Path = "/maindir/subdir/path"

   使用到期時(shí)間

   通常情況下,當(dāng)瀏覽器關(guān)閉時(shí),一個(gè)cookie就不存在了。但是在許多時(shí)候,比如下面將要討論的web站點(diǎn)例子,我們希望能更長時(shí)間地在訪問者的計(jì)算機(jī)上保存cookie。很幸運(yùn),有這樣的實(shí)現(xiàn)方法。下面的代碼,就可以設(shè)置cookie的使用到期時(shí)間為2010年1月1日:
Response.Cookies("CookieName").Expires=#January 01, 2010#

   執(zhí)行下面的代碼,將設(shè)定cookie的過期時(shí)間為“cookie的創(chuàng)建時(shí)間+365日”:
Response.Cookies("CookieName")=Date+365

   使用cookie的實(shí)際例子(非常精彩)

   現(xiàn)在開始討論實(shí)際的例子。假設(shè):你想做一個(gè)調(diào)查,每個(gè)人初次訪問時(shí)需要填寫好信息,但是當(dāng)日后再訪問時(shí),就不需要再那么做。利用cookie,就可以非常圓滿地解決這個(gè)問題,而大可不必用到數(shù)據(jù)庫

< %@ LANGUAGE="VBSCRIPT" %  >
< %
Survey=Request.Cookies("KensSurvey")
If Survey ="" then
  Response.Cookies("KensSurvey")="x"
  Response.Cookies("KensSurvey").Expires=#January 01, 2010#
  Response.Redirect "survey.asp"
Else
'rest of the page
End if
% >
   好,下面開始從頭討論上面的代碼。

   首先,初始設(shè)置頁面,并讀取名字為KensSurvey的cookie值:


< %@ LANGUAGE="VBSCRIPT" % >
< %
Survey=Request.Cookies("KensSurvey")
   然后,判斷是否已經(jīng)存在cookie值:

If Survey ="" then
   如果不存在, 就創(chuàng)建并設(shè)置cookie,并轉(zhuǎn)到頁面survey.asp。 當(dāng)下一次訪問時(shí),因?yàn)榇嬖赾ookie值,就不會(huì)再轉(zhuǎn)到survey.asp 頁面。

   Response.Cookies("KensSurvey")="x"
   Response.Cookies("KensSurvey").Expires=#January 01, 2010#
   Response.Redirect "survey.asp"
   如果cookie已經(jīng)存在,那么訪問者將執(zhí)行頁面中剩余的代碼:

'rest of the page

End if
% >
   例子2

   這里有另外一個(gè)簡(jiǎn)單的例子:當(dāng)訪問者第1次瀏覽某個(gè)站點(diǎn)時(shí),向他們顯示歡迎信息。代碼如下:

< %@ LANGUAGE="VBSCRIPT" % >
< %
RequestName = Request.Form("Name")
RequestLeaveMeAlone = Request.Form("LeaveMeAlone")
If RequestName <  >"" or RequestLeaveMeAlone <  >"" then
  Response.Cookies("MySiteVisitorName") = RequestName
  Response.Cookies("MySiteVisitorName").Expires = #January 01, 2010#
  Response.Cookies("MySiteLeaveMeAlone") = RequestLeaveMeAlone
  Response.Cookies("MySiteLeaveMeAlone").Expires = #January 01, 2010#
End if    
VisitorName = request.cookies("MySiteVisitorName")
LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")

If VisitorName ="" and LeaveMeAlone ="" then
% >
  < HTML > < HEAD > < /HEAD >
  < body bgcolor="#ccffff" text="black" link="navy" vlink="purple" >
  < DIV ALIGN="CENTER" >
  < form action="index.asp" method="POST" >
  < H2 >Let's be friends< /H2 >
  What's your name (leave blank and hit the Submit button if you don't want us to know)?
  < input type="text" name="name" >< BR >< BR >
  < input type="hidden" name="LeaveMeAlone" value="x" >
  < input type="submit" value="Submit" >
  < /FORM >
  < /DIV >
  < /BODY >
< %
End if
If VisitorName <  > "" then
   Response.write "Hi, " & VisitorName & "!  I hope you are having a great day!"
End if
'rest of the page
% >
   好,現(xiàn)在來看看上面的代碼實(shí)現(xiàn)執(zhí)行了什么。首先,設(shè)置頁面。然后,檢查表單變量(在同一個(gè)頁面中)。如果表單變量存在,就創(chuàng)建cookie,并設(shè)置到期時(shí)間。

< %@ LANGUAGE="VBSCRIPT" % >
< %
RequestName = Request.Form("Name")
RequestLeaveMeAlone = Request.Form("LeaveMeAlone")
If RequestName <  >"" or RequestLeaveMeAlone <  >"" then
  Response.Cookies("MySiteVisitorName") = RequestName
  Response.Cookies("MySiteVisitorName").Expires = #January 01, 2010#
  Response.Cookies("MySiteLeaveMeAlone") = RequestLeaveMeAlone
  Response.Cookies("MySiteLeaveMeAlone").Expires = #January 01, 2010#
End if    

   接著,讀取cookie:

VisitorName = request.cookies("MySiteVisitorName")
LeaveMeAlone = request.cookies("MySiteLeaveMeAlone")
   如果cookie在訪問者的計(jì)算機(jī)上不存在,就創(chuàng)建一個(gè)表單,詢問相關(guān)信息:

If VisitorName ="" and LeaveMeAlone ="" then
% >
  < HTML >
  < HEAD >
  < /HEAD >
  < body bgcolor="#ccffff" text="black" link="navy" vlink="purple" >
  < DIV ALIGN="CENTER" >
  < form action="index.asp" method="POST" >
  < H2 >Let's be friends< /H2 >
  What's your name (leave blank and hit the Submit button if you don't want us to know)?
  < input type="text" name="name" >< br >< br >
  < input type="hidden" name="LeaveMeAlone" value="x" >
  < input type="submit" value="Submit" >
  < /FORM >
  < /DIV >
  < /BODY >
< %
End if
   如果cookie已經(jīng)存在,并且用戶名字存在,就顯示給訪問者一個(gè)歡迎界面,然后執(zhí)行其余的代碼。

If VisitorName <  > "" then
  Response.write "Hi, " & VisitorName & "!  I hope you are having a great day!"
End if
'rest of the page
% >
   盡管上面的這個(gè)例子很簡(jiǎn)單,但可以從中擴(kuò)展許多富有創(chuàng)造力的應(yīng)用。你可以在表單中加入許多功能,以便定制化web站點(diǎn)。你還可以讓訪問者定制網(wǎng)站的色彩、字體,以至于其他web元素。有可能的話,你可以詢問訪問者的生日,當(dāng)訪問者在那一天來訪時(shí),你就可以顯示“生日快樂”的信息給他。

   如你所見,cookie的擴(kuò)展性是無窮的,這篇文章僅僅是拋磚引玉。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表

圖片精選

主站蜘蛛池模板: 柘城县| 新巴尔虎左旗| 赤峰市| 双桥区| 肇庆市| 金寨县| 法库县| 彩票| 峨眉山市| 蓬莱市| 中卫市| 大港区| 中卫市| 应城市| 汝城县| 金门县| 突泉县| 郑州市| 江城| 徐州市| 宕昌县| 明溪县| 招远市| 阳信县| 营山县| 黄龙县| 三明市| 邯郸市| 虹口区| 盐城市| 育儿| 甘孜| 洪雅县| 安溪县| 称多县| 揭阳市| 灵石县| 新宁县| 莎车县| 武汉市| 乐山市|