在ASP技術中,Cookie是Response的惟一的一個集合,是Web服務器在用戶的瀏覽器中用來表明用戶的令牌。當同一瀏覽器又一次請求同一Cookie設定的頁面時,它將從用戶端把上一次從Web服務器中收到的Cookie發送回Web服務器進行數據處理。在實際應用中,Cookie一直起着至關重要的做用,設置Cookie的屬性和它的失效期在Cookie的使用中扮演着舉足輕重的角色。特別像在一些很重要的場合,好比說在線投票、電子商務中,設置Cookie以及它的失效期是很重要的。 html
要設置Cookie的失效期可使用Expires屬性。Expires是期滿、終止、失效的意思。該屬性是隻寫的,用於設置Cookie的期限,指定Cookie的失效期。沒有指按期限的Cookie只能經過瀏覽器所提供的Cookies功能,將信息暫時存放在用戶端,而不能以文件的形式存儲到用戶的計算機上,當用戶關閉該瀏覽器時,此Cookie自動失效。因此無失效期的Cookie不能跟蹤用戶的信息。要延長Cookie的生命週期,跟蹤用戶來訪信息,就必須用Expires屬性來設置Cookie的失效時間。 編程
在討論設置Expires屬性以前,首先回顧一下ASP技術中表示時間的幾個關鍵字:time 、date 和now。這樣作的好處是有利於你們進一步的學習。下面先請你們看一段程序以及它的運行結果: 瀏覽器
<html> 服務器
<head> cookie
<title>時間測試</title> 函數
</head> 學習
<body> 測試
time: <%=time%><p> server
date: <%=date%><p> htm
now: <%=now%><p>
</body>
</html>
這三個關鍵字都是表明Web服務器的系統時間的。咱們經過上面的程序和運行結果,能夠很快地、很清楚地瞭解這三個關鍵字和它們之間的區別:
1. time :主要用於表示時間,包括時、分、秒,不表示日期
2. date :主要用於表示日期,包括年、月、日,不表示時間
3. now :同時表示時間(時分秒)和日期(年月日)
有了以上的基礎知識,如今能夠談一下設置Expires的三大類方法:
1. dateadd法
1)將期限設置爲當前日期後的第N天的0時0分0秒
Response.Cookies("AsaiCks").Expires=dateadd("d",N,date)
2)將期限設置爲當前日期後的第N月的同一天的0時0分0秒
Response.Cookies("AsaiCks").Expires=dateadd("m",N,date)
3)將期限設置到當前時間後的第N天的該時該分該秒
Response.Cookies("AsaiCks").Expires=dateadd("d",N,now)
4)將期限設置到當前時間後的第N+M天的該時該分該秒
Response.Cookies("AsaiCks").Expires=dateadd("d",N,now+M)
5)將期限設置到當前時間後的第N月的該時該分該秒
Response.Cookies("AsaiCks").Expires=dateadd("m",N,now)
6)將期限設置到當前時間後的第N月的同一往後的第M天的該時該分該秒
Response.Cookies("AsaiCks").Expires=dateadd("m",N,now+M)
2. 肯定日期法
1)將期限設置到某一日的0時0分0秒失效
舉例:到2003年1月29日0時0分0秒失效
Response.Cookies("AsaiCks").Expires=# 1/29/2003 #
或
Response.Cookies("AsaiCks").Expires=# 2003/1/29 #
或
Response.Cookies("AsaiCks").Expires="January 29,2003"
2)將期限設置到某一日的某一時刻失效
舉例:到2003年1月29日21時0分0秒失效
Response.Cookies("AsaiCks").Expires = #2003/1/29 21:00:00#
或
Response.Cookies("AsaiCks").Expires = #1/29/2003 21:00:00#
或
Response.Cookies("AsaiCks").Expires = #January 29,2003 21:00:00#
其實,在這種方法中,用"" ""和"# #"的效果是同樣的。例如
Response.Cookies("AsaiCks").Expires="January 29,2003"
和
Response.Cookies("AsaiCks").Expires=# January 29,2003 # 的效果就是相同的。
3. date+ \now+ 法
這種方法主要結構爲Date+數學式或now +數學式。經過簡單的四則運算的方法,將Cookie 的失效時間設置到當前時間後的某一段時間內。這裏的加號都表示在當前時間的基礎上加上預設時間。
1)date+法
如將期限設置爲當前日期後的第N天的0時0分0秒,咱們可使用上述已談到過的方法也可使用以下格式:
Response.Cookies("AsaiCks").Expires=Date+N
date+法是一種比較死的方法。它和上述方法差異不是很大,徹底能夠由上述幾種方法代替。下面介紹now+法,這是一種比較靈活的方法,它能夠將失效時間準確地定位到當前時間後的任意一年、一月、一天、一小時、一分、一秒。
2)now+法
先舉一個例子: Response.Cookies("AsaiCks").Expires = now+1
這條語句的功能是:把Cookie的失效時間限制到1天后的同一時刻。這裏的1表明1天,即24小時。因爲now表明當前Web服務器的系統時間,包括年、月、日、時、分、秒,則該語句所表達得Cookie 的失效日期在明天的同一時、分、秒上。若改爲now+2則表示此Cookie 的失效日期在兩天後的同一時、分、秒上;now+30表示此Cookie 的失效日期在一個月後的同一時、分、秒上;now+30*2表示此Cookie 的失效日期在兩個月後的同一時、分、秒上;now+365則表示此Cookie 的失效日期在一年後的同一時、分、秒上……
當把1分紅24等份,即該語句變成: Response.Cookies("AsaiCks").Expires = now+1/24則表示把Cookie的失效時間限制到一小時後。在此基礎上,把1再分60等份,即把now+1/24改爲 now+1/1440,則表示把Cookie的失效時間限制到一分鐘後。這裏的1440是由24*60得來。同理,要把Cookie的失效時間限制到十分鐘後,則把程序變成Response.Cookies("AsaiCks").Expires = now+10/1440;要把Cookie的失效時間限制到一秒鐘後,則程序變成Response.Cookies("AsaiCks").Expires = now+1/86400。固然,理論上把Cookie的失效時間限制到微秒級也是能夠的。不過,那就沒有什麼實際意義了。另外,若是程序語句變成: Response.Cookies("AsaiCks").Expires = now+1+1/1440則表示Cookie的失效時間爲24小時零一分鐘後。
以上只是筆者在對ASP研究過程當中的一些心得。對設置Cookie的失效時間的方法進行一個詳細的闡述,以彌補市面上有關書籍中的不足,但願你們在編程時可以獲得方便。
+++++++++++++++++++++++++++++++++++++++++++++
保留COOKIES一個小時
Response.Cookies("MyCookie").Expires= (now()+1/24)
Response.Cookies("MyCookie").Expires = DateAdd("h", 1, Now())
Response.Cookies("CookieName").Expires=DateAdd("m",60,now())
設置60個月之後過時
Response.Cookies("User").expires=second()+7
在expires後面定義的時間能夠用時間函數代替
例如:date()+7就表示在今天的時間上加上7天,而second()+7則是7秒了。
Response.Cookies("字段名").expires=時間函數+N,例如:
Response.Cookies("name2").expires=date+1,表示Cookies保存1天,再好比:
Response.Cookies("name2").expires=Hour+8,表示Cookies保存8小時。
這種方法我測試過不行(在2003server,iis6.0中),無論second後面有無加(),訪問時會出現500錯誤(仍是沒法顯示網頁?忘了)。
織夢尤文:這裏的時間累加建議仍是使用DateAdd函數,好比咱們要累加一小時,則使用:
Response.Cookies("baidooglecom").expires = DateAdd("h", 1, Now())
30分鐘:
Response.Cookies("CookieName").Expires=DateAdd("n",30,now())
dateadd("S",30,now()) 獲得秒
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,這樣頁面之間的調用時值會爲空。