概述
2019独角兽企业重金招聘Python工程师标准>>>
在ASP技术中,Cookie是Response的唯一的一个集合,是Web服务器在用户的浏览器中用来代表用户的令牌。当同一浏览器又一次请求同一Cookie设定的页面时,它将从用户端把上一次从Web服务器中收到的Cookie发送回Web服务器进行数据处理。在实际应用中,Cookie一直起着相当重要的作用,设置Cookie的属性和它的失效期在Cookie的使用中扮演着举足轻重的角色。特别像在一些很重要的场合,比如说在线投票、电子商务中,设置Cookie以及它的失效期是很重要的。
要设置Cookie的失效期可以使用Expires属性。Expires是期满、终止、失效的意思。该属性是只写的,用于设置Cookie的期限,指定Cookie的失效期。没有指定期限的Cookie只能通过浏览器所提供的Cookies功能,将信息暂时存放在用户端,而不能以文件的形式存储到用户的计算机上,当用户关闭该浏览器时,此Cookie自动失效。所以无失效期的Cookie不能跟踪用户的信息。要延长Cookie的生命周期,跟踪用户来访信息,就必须用Expires属性来设置Cookie的失效时间。
在讨论设置Expires属性之前,首先回顾一下ASP技术中表示时间的几个关键字:time 、date 和now。这样做的好处是有利于大家进一步的学习。下面先请大家看一段程序以及它的运行结果:
<html>
<head>
<title>时间测试</title>
</head>
<body>
time: <%=time%><p>
date: <%=date%><p>
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,这样页面之间的调用时值会为空。
转载于:https://my.oschina.net/u/945047/blog/140875
最后
以上就是朴实紫菜为你收集整理的asp设置cookies的过期时间的全部内容,希望文章能够帮你解决asp设置cookies的过期时间所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复