<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      ASP中Cookie使用向導

      [摘要]我自己曾想寫一篇關于Cookie的文章,特別是Client端Script同Server端ASP通過Cookie交互的問題可能會困擾大家。其實是如果你對Cookie有深入的理解,特別是對域和路徑的概念比較清晰的話,就不會有問題了。另外想提示的一點是request.ServerVariables(&q...
      我自己曾想寫一篇關于Cookie的文章,特別是Client端Script同Server端ASP通過Cookie交互的問題可能會困擾大家。其實是如果你對Cookie有深入的理解,特別是對域和路徑的概念比較清晰的話,就不會有問題了。
      另外想提示的一點是request.ServerVariables("HTTP_COOKIE")得到Cookie和Request.Cookies得到的結果可能會有所不同。大家思考一下為什么,會對ASP的學習提高有所幫助的。 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 " " %></TD>
      </TR>
      <%
      Next
      %>
      </TABLE>
      重粒子@Y2K0814
      --------------------------------------------------------

      下面是甘冀平翻譯的<ASP中Cookie使用指南>

      實際上,在web開發中,cookie僅僅是一個文本文件,當用戶訪問站點時,它就被存儲在用戶使用的計算機上,其中,保存了一些信息,當用戶日后再次訪問這個站點時,web可以將這些信息提取出來。

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

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

      利用cooklie能做什么?

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

      創建cookie的基本語法

      Response.Cookies("CookieName")=value

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

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

      讀取cookie的基本語法 

      Request.Cookies("CookieName") 

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

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

      功能豐富的cookie 

      你可以擴展上面的代碼成為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 = &quotwww.mydomain.com" 

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

      使用到期時間

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

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

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

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

      < %@ 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
      % >
      好,下面開始從頭討論上面的代碼。

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


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

      If Survey ="" then
      如果不存在, 就創建并設置cookie,并轉到頁面survey.asp。 當下一次訪問時,因為存在cookie值,就不會再轉到survey.asp 頁面。

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

      'rest of the page

      End if
      % >
      例子2 

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

      < %@ 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
      % >
      好,現在來看看上面的代碼實現執行了什么。首先,設置頁面。然后,檢查表單變量(在同一個頁面中)。如果表單變量存在,就創建cookie,并設置到期時間。

      < %@ 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在訪問者的計算機上不存在,就創建一個表單,詢問相關信息:

      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已經存在,并且用戶名字存在,就顯示給訪問者一個歡迎界面,然后執行其余的代碼。

      If VisitorName < > "" then
      Response.write "Hi, " & VisitorName & "! I hope you are having a great day!"
      End if
      'rest of the page
      % >





      日韩精品一区二区三区高清