日期:2014-05-17  浏览次数:21214 次

为什么response.cookies("key").Expires 会覆盖?
大家都知道 给cookies设置有效期 比如
response.cookies("user").Expires=DateAdd("d",100,Now())

我现在有个问题:

我发现 两端代码,第一段执行,不加Expires, 那么浏览器关闭就失效

第二段代码,加Expires, 指定时间失效。


好了,现在做个测试: 先执行有加Expires的代码段, 然后再执行没加Expires的代码段,
发现,执行了后面的代码之后,会使得 前面代码设置的Expires清空。
代码段一:
VBScript code

response.cookies("user").Expires=DateAdd("d",100,Now())
response.cookies("user")("id")=100



代码段二
VBScript code

response.cookies("user")("id")=100



另外一个独立的页面,作为读取cookies 测试用的
代码段三
VBScript code

response.write request.cookies("user")("id")




现在执行顺序是,
1,执行代码段一,然后关闭浏览器
2,打开浏览器执行代码三,cookies还存在
3,执行代码段二
4,关闭浏览器
5,执行代码段三
结果,发现 cookies不见了。



为什么呢?


难道每次给cookies赋值,都要说明过期时间吗?


------解决方案--------------------
cookie = request.cookie("user");
cookie("id") = 100;
response.cookies("user") = cookie

第二步换成这样试试
------解决方案--------------------
cookie = request.cookies("user");
cookie("id") = 100;
response.cookies("user") = cookie



少个s
------解决方案--------------------
不设Expires默认就是关闭浏览器后失效。
可以用firebug跟踪一下cookie字符串就知道了,可以看到每次expires=;的设置。