ASP之Cookies講座
最後更新:2017-02-28
來源:互聯網
上載者:User
cookie|cookies 最近在研究ASP中的COOKIES,在網上找到了一篇不錯的文章,發出來~!
給正在學習COOKIES的朋友點協助~!
什麼是 Cookie?Cookie 其實是一個標籤,經常可能聽到的中文翻譯:小舔餅。當你訪問一個需要唯一標識你的站址的 WEB 網站時,它會在你的硬碟上留下一個標記,下一次你訪問同一個網站時,網站的頁面會尋找這個標記。
每個 WEB 網站都有自己的標記,標記的內容可以隨時讀取,但只能由該網站的頁面完成。每個網站的Cookie與其他所有網站的Cookie存在同一檔案夾中的不同檔案內(你可以在 win98 的 Windows 目錄下的 Cookie 檔案夾中找到它們,而 win2k 則在 Documents and Settings 檔案夾下特定使用者的 cookies 檔案夾中)。
一個 Cookie 就是一個唯一標識客戶的標記,Cookie 可以包含在一個對話期或幾個對話期之間某個 WEB 網站的所有頁面共用的資訊,使用 Cookie 還可以在頁面之間交換資訊。這項功能經常被使用在要求認證客戶密碼以及電子公告板、WEB 聊天室等 ASP 程式中。
儘管現在聽起來cookie沒有什麼激動人心的,但實際上利用它,你能實現許多有意義的功能!比如說:你可以在網站上放置一個調查問答表,詢問訪問者最喜歡的顏色和字型,然後根據這些定製使用者的web介面。並且,你還可以儲存訪問者的登入密碼,這樣,當訪問者再次訪問這個網站時,不用再輸入密碼進行登入。
當然,cookie也有一些不足。首先,由於利用cookie的功能可以編程實現一些不良企圖,所以大多數的瀏覽器中都有安全設定,其中可以設定是否允許或者接受cookie(IE瀏覽器中“工具”--“Internet選項...”--“安全”--“自訂層級”--“Cookie的使用”;Netscape瀏覽器中“工具”--“Cookie管理器”--“管理貯存的Cookie”即可),因此這就不能保證隨時能使用cookie。再者,訪問者可能有意或者無意地刪除cookie。當訪問者的機器遇到“藍屏”死機時,或者重新格式化硬碟、安裝系統後,原來儲存的cookie將全部丟失。最後一點,有一些最初始的瀏覽器並不能支援cookie。
◆ 怎樣利用cooklie?
有2種使用cookie的基本方式:
1、將cookie寫入訪問者的電腦(使用 Response 命令)
2、從訪問者的電腦中取回cookie(使用 Request 命令)
◆ 建立cookie的基本文法: Response.Cookies(cookie)[(key)|.attribute]=value
這裡的 cookie 是指定 cookie 的名稱。
而如果指定了 key,則該 cookie 就是一個字典。
(測試一cookie是否為一個字典可用後面代碼顯示布爾值:<%=Request.Cookies("cookiename").HasKeys%>。為true是字典,false則不是。 )
Attribute 指定 cookie 自身的有關資訊。Attribute 參數可以是下列之一 :
①Domain 若被指定,則 cookie 將被發送到對該域的請求中去。域屬性工作表明cookie由哪個網站產生或者讀取,預設情況下,cookie的域屬性設定為產生它的網站,但你也可以根據需要改變它。(Response.Cookies("CookieName").Domain = "www.mydomain.com")
②Path 為一路徑屬性,該屬性可以實現更多的安全要求,通過設定網站上精確的路徑,就能限制cookie的使用範圍。如果未設定該屬性,則使用應用程式的路徑。(Response.Cookies("CookieName").Path = "/maindir/subdir/path" )
③Expires 指定 cookie 的到期日期。為了在會話結束後將 cookie 儲存在用戶端磁碟上,或在許多時候,我們希望能更長時間地在訪問者的電腦上儲存cookie。必須設定該日期。若此項屬性的設定未超過當前日期,則在任務結束後 cookie 將到期。
後面的代碼,就可以設定cookie的使用到期時間為“2010年1月1日”: Response.Cookies("CookieName").Expires=#January 01, 2010#
後面的代碼,將設定cookie的到期時間為“cookie的建立時間+365天”:Response.Cookies("CookieName").Expires=Date+365
但最好不要隨便寫 Response.Cookies("CookieName").Expires=Date,這樣頁面之間的調用時值會為空白。
執行下面的代碼將會在訪問者的電腦中建立一個cookie,名字=VisitorName,值=Ken :
Response.Cookies("VisitorName")="Ken"
執行下面的代碼將會在訪問者的電腦中建立一個cookie,名字=VisitorName,值=表單中UserName的值
Response.Cookies("VisitorName")=Request.form("UserName")
你可以擴充下面的代碼成為Cookie子關索引值(CookieSubName),即cookie字典的產生。代碼如下:
Response.Cookies("VisitorName")("FirstName")="Ken"
Response.Cookies("VisitorName")("LastName")="Baumbach"
◆ 讀取cookie的基本文法:Request.Cookies(cookie)[(key)|.attribute]
cookie 指定要檢索其值的 cookie。
key 選擇性參數,用於從 cookie 字典中檢索子關鍵字的值。
attribe 指定 cookie 自身的有關資訊。如:HasKeys 唯讀,指定 cookie 是否包含關鍵字。
如果用戶端瀏覽器發送了兩個同名的 cookie,那麼 Request.Cookie 將返回其中路徑結構較深的一個。例如,如果有兩個同名的的 cookie,但其中一個的路徑屬性為 /www/ 而另一個為 /www/home/,用戶端瀏覽器同時將兩個 cookie 都發送到 /www/home/ 目錄中,那麼 Request.Cookie 將只返回第二個 cookie。
案例分析:
◆ num.asp(通過留在本地磁碟上的cookie記錄一年內訪問本站的次數,第一次顯示“首次訪問”,以後顯示“第幾次訪問”)