[正式探索]cookie的使用


阿閔 發表



本篇所要探討的主題是cookies, cookies 在ASP的應用裡可是功能多多的喔! 在讀這篇之前,您要先對 request & response 要有充分的了解喔! 因為,cookies的讀入&讀出,就是使用request & response 這兩個物件來配合的喔!

本篇所要探討的主題是cookies
cookies 在ASP的應用裡可是功能多多的喔! 在讀這篇之前,您要先對 request & response 要有充分的了解喔!
因為,cookies的讀入&讀出,就是使用request & response 這兩個物件
來配合的喔!

STEP1:【基本cookies】

cookies 物件的功能主要是用於記錄瀏覽者所輸入的資料!
或將ASP傳遞/接收的變數暫存在cookies中!以達到程式應用的功能!
cookies在運作上時是將ASP存入的變數存在WINDOWS目錄下cookies這個
目錄下!一般是c:\windows\cookies\ 以IP或主機名稱存為文字檔!
當然這是不需要我們去管的!
我們只需要瞭解如何運用cookies來儲存我們的變數就可以了!
下面是cookies的基本語法:
寫入COOKIES:
response.cookies("變數名")=存入變數
response.cookies("變數名").expires="2030/1/1"

讀出COOKIES:
變數=request.cookies("變數名")
在寫入的程式中,運用到ASP的主要物件 response
, response 是輸出用的物件,配合上.cookies("變數名")
就等於response.cookies("變數名")
如此便可以將存入變數輸出到cookies儲存!
而寫入的程式的第二行便是用設定此cookies變數的有限期限!
若您沒有加上第二行!則瀏覽器關掉後此cookies變數便消失不見了喔!
接下來是讀出的程式部份!
前面阿得也教過大家request的用法!
這裡我們只要把.form("欄位名稱") 改成 .cookies("變數名")
如此就可以讀出cookies變數了!是不是很簡單呢!

STEP2:【常用的cookies語法】

看了STEP1的語法教學,是不是覺得在cookies設有限期限很不實用呢?
接下來我們要教大家比較實用的cookies語法!

以下是上面教的語法
response.cookies("變數名")=存入變數
response.cookies("變數名").expires="2030/1/1"
現在,我們把語法改成下面這樣!
expiredate=dateadd("d",幾天內有效,date)
response.cookies("變數名")=存入變數
response.cookies("變數名").expires=formatdatetime(expiredate)


在第一行中,設定變數expiredatedateadd()這個函數取得目前日期部份並計算幾天內有效 而語法中dateadd("d",幾天內有效,date)
的"幾天內有效"是我們要設定由目前算起幾天以內有效的變數!
例如:我們如果要設定一個月,就把"幾天內有效"
改成30-->dateadd("d",30,date)這樣,
這個cookies變數的有效期限就變成一個月了!
而第三行中,我們把.expires="2030/1/1" 改成了.expires=formatdatetime(expiredate)
如此在儲存cookies變數時便會以目前日期加??天的方式儲存其有效期限!
大家在使用的時候只需要更改expiredate=dateadd("d",幾天內有效,date)
設定自己的應用需求便可!

STEP3:【簡單的範例】

再來我們要教大家的,是利用cookies來儲存變數的範例!
首先打開您的記事本!
將下列範例copy進去並存在您的pws目錄下!<如不瞭解請參考前面的教學>


範例1.來訪次數
<%
response.buffer=true '設定啟動輸出暫存區
viewtime=request.cookies("viewtime") '讀出變數
if viewtime="" then '如無cookies則是第一次來訪
viewtime=1 '設viewtime為1
end if
expiredate=dateadd("d",365,date) '設定一年內有效
response.cookies("viewtime")=viewtime+1 '存回cookies變數並加一
response.cookies("viewtime").expires=formatdatetime(expiredate)
%>
您是第<%=viewtime%>次來訪

-----------------------------------------------------------------
執行之後按重新整理看看~是不是來訪次數一直增加呢!
這邊要解釋一下response.buffer=true這個語法!
是用來在我們對瀏覽器輸出資料之前先做暫存!
等到所有資料都讀取完成才對瀏覽器作輸出!
一般都是在做寫入cookies 網頁轉址response.redirect "網址" 時必用的一項物件!
因為這兩個物件都必須在對瀏覽器作輸出前完成動作!
大家要注意喔!
另外,<%=viewtime%>就等於是<%response.write viewtime%>
我們在寫程式的時候很好用喔!
-----------------------------------------------------------------



範例2.記憶輸入

這個範例是記憶使用者輸入的資料!
請把檔名存成cookies.asp 及 out.asp
cookies.asp
-----------------------------------------------------------------
Name:
Email:
Homepage:

在cookies.asp中輸入方塊的value由cookies("變數")取得
若有輸入過,便有資料可取,若無則是空白
表單的action設為out.asp
-----------------------------------------------------------------
out.asp
-----------------------------------------------------------------
<%response.buffer=true%>
您的name: <%=request("name")%>

您的email: <%=request("email")%>

您的homepage: <%=request("homepage")%>
<%
expiredate=dateadd("d",365,date) '設定一年內有效
response.cookies("name")=request("name") '存回cookies變數並加一
response.cookies("name").expires=formatdatetime(expiredate)
response.cookies("email")=request("email") '存回cookies變數並加一
response.cookies("email").expires=formatdatetime(expiredate)
response.cookies("homepage")=request("homepage") '存回cookies變數並加一
response.cookies("homepage").expires=formatdatetime(expiredate)
%>
-----------------------------------------------------------------
在out.asp中輸出由cookies.asp取得的表單資料
並將取得的資料存入cookies以便下次由cookies取得!
是不是很簡單呢!

當然cookies在儲存上也有限制!並不是一昧的把變數往cookies裡存!
這只是ASP的變數儲存物件的一項!
要寫出一個好程式,一定要適當的運用各項物件!
才能得到最大的效能!
有問題歡迎去討論版提出^ ^

最後更新日期: 7/19/2001 2:31:19 PM