ASP中Cookie使用指南

來源:互聯網
上載者:User
cookie 實際上,在web開發中,cookie僅僅是一個文字檔,當使用者訪問網站時,它就被儲存在使用者使用的電腦上,其中,儲存了一些資訊,當使用者日後再次訪問這個網站時,web可以將這些資訊提取出來。

儘管現在聽起來cookie沒有什麼激動人心的,但實際上利用它,你能實現許多有意義的功能!比如說:你可以在網站上放置一個調查問答表,詢問訪問者最喜歡的顏色和字型,然後根據這些定製使用者的web介面。並且,你還可以儲存訪問者的登入密碼,這樣,當訪問者再次訪問這個網站時,不用再輸入密碼進行登入。

當然,cookie也有一些不足。首先,由於利用cookie的功能可以編程實現一些不良企圖,所以大多數的瀏覽器中都有安全設定,其中可以設定是否允許或者接受cookie,因此這就不能保證隨時能使用cookie。再者,訪問者可能有意或者無意地刪除cookie。當訪問者的機器遇到“藍屏”死機時,或者重新格式化硬碟、安裝系統後,原來儲存的cookie將全部丟失。最後一點,有一些最初始的瀏覽器並不能支援cookie。

利用cooklie能做什嗎?

有2種使用cookie的基本方式

1、將cookie寫入訪問者的電腦(使用RESPONSE命令)
2、從訪問者的電腦中取回cookie(使用REQUEST命令)



  Response.Cookies("CookieName")=value

執行下面的代碼將會在訪問者的電腦中建立一個cookie,名字=VisitorName,值=Ken
Response.Cookies("VisitorName")="Ken"

執行下面的代碼將會在訪問者的電腦中建立一個cookie,名字=VisitorName,值=表單中UserName的值
Response.Cookies("VisitorName")=Request.Form("UserName")



  Request.Cookies("CookieName")

可以將Request值當作一個變數看待,執行下面的代碼,將取回名字為KensCookie的cookie值,並存入變數MyVar:
MyVar=Request.Cookies("KensCookie")

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



你可以擴充上面的代碼成為Cookie子關索引值(CookieSubName),代碼如下:
Response.Cookies("VisitorName")("FirstName")="Ken"
Response.Cookies("VisitorName")("LastName")="Baumbach"

講解例子前,最後討論2個概念:命令約定和使用到期時間

  

  同其他變數的命名一樣,合適地、獨特地命名cookie,有利於在程式中前後連貫地使用它。你可以使用下面的1個或者2個
cookie屬性進行cookie變數的命名:

  域屬性(Domain):域屬性工作表明cookie由哪個網站產生或者讀取,預設情況下,cookie的域屬性設定為產生它的網站,但你
也可以根據需要改變它。相關代碼如下:Response.Cookies("CookieName").Domain=";

  路徑屬性(Path):路徑屬性可以實現更多的安全要求,通過設定網站上精確的路徑,就能限制cookie的使用範圍。例如:
Response.Cookies("CookieName").Path="/maindir/subdir/path"

  

  通常情況下,當瀏覽器關閉時,一個cookie就不存在了。但是在許多時候,比如下面將要討論的web網站例子,我們希望能更
長時間地在訪問者的電腦上儲存cookie。很幸運,有這樣的實現方法。下面的代碼,就可以設定cookie的使用到期時間為2010年
1月1日:
Response.Cookies("CookieName").Expires=#January01,2010#

  執行下面的代碼,將設定cookie的到期時間為“cookie的建立時間+365日”:
Response.Cookies("CookieName")=Date+365

使用cookie的實際例子

現在開始討論實際的例子。假設:你想做一個調查,每個人初次訪問時需要填寫好資訊,但是當日後再訪問時,就不需要再那
麼做。利用cookie,就可以非常圓滿地解決這個問題,而大可不必用到資料庫。



好,下面開始從頭討論上面的代碼。

首先,初始設定頁面,並讀取名字為KensSurvey的cookie值:


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

IfSurvey=""then
  如果不存在,就建立並設定cookie,並轉到頁面survey.asp。當下一次訪問時,因為存在cookie值,就不會再轉到
survey.asp頁面。

Response.Cookies("KensSurvey")="x"
Response.Cookies("KensSurvey").Expires=#January01,2010#
Response.Redirect"survey.asp"
  如果cookie已經存在,那麼訪問者將執行頁面中剩餘的代碼:

'restofthepage

Endif
%>

這裡有另外一個簡單的例子:當訪問者第1次瀏覽某個網站時,向他們顯示歡迎資訊。代碼如下:



現在來看看上面的代碼實現執行了什麼。首先,設定頁面。然後,檢查表單變數(在同一個頁面中)。如果表單變數存
在,就建立cookie,並設定到期時間。

<%@LANGUAGE="VBSCRIPT"%>
<%
RequestName=Request.Form("Name")
RequestLeaveMeAlone=Request.Form("LeaveMeAlone")
IfRequestName<>""orRequestLeaveMeAlone<>""then
Response.Cookies("MySiteVisitorName")=RequestName
Response.Cookies("MySiteVisitorName").Expires=#January01,2010#
Response.Cookies("MySiteLeaveMeAlone")=RequestLeaveMeAlone
Response.Cookies("MySiteLeaveMeAlone").Expires=#January01,2010#
Endif

  接著,讀取cookie:

VisitorName=request.cookies("MySiteVisitorName")
LeaveMeAlone=request.cookies("MySiteLeaveMeAlone")
  如果cookie在訪問者的電腦上不存在,就建立一個表單,詢問相關資訊:

IfVisitorName=""andLeaveMeAlone=""then
%>
<HTML>
<HEAD>
</HEAD>
<bodybgcolor="#ccffff"text="black"link="navy"vlink="purple">
<DIVALIGN="CENTER">
<formaction="index.asp"method="POST">
<H2>Let'sbefriends</H2>
What'syourname(leaveblankandhittheSubmitbuttonifyoudon'twantustoknow)?

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.