asp設置cookies的過時時間

在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,這樣頁面之間的調用時值會爲空。

相關文章
相關標籤/搜索