本篇所要探討的主題是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)
在第一行中,設定變數expiredate由dateadd()這個函數取得目前日期部份並計算幾天內有效
而語法中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
-----------------------------------------------------------------
在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的變數儲存物件的一項!
要寫出一個好程式,一定要適當的運用各項物件!
才能得到最大的效能!
有問題歡迎去討論版提出^
^