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,这样页面之间的调用时值会为空。

相关文章
相关标签/搜索