日期:2014-05-16  浏览次数:20551 次

cookie过期应该如何设置
假设 我登陆网站后
setcookie(abc["admin"], "zhang", time() + 3600);
setcookie(abc["name"], "张三", time() + 3600);

当我刷新页面后,过期时间应该是从当前再加上3600秒

如果是ASP,可以直接在conn.asp里设置
Response.Cookies("abc").expires=DateAdd("n", 60, Now())
当刷新页面后abc下的所有cookie都会把过期时间变成当前时间加上60分钟

PHP的话 要如何批量延长过期时间?


------解决方案--------------------
修改php.ini
------解决方案--------------------
setcookie(abc["admin"], "zhang", time() + 3600);
你这不就是设置了过期时间,修改php.ini设置下时区。

------解决方案--------------------
php中设置的cookie都会被放到预定义变量$_COOKIE数值中(在下次加载页面的时候$_COOKIE中才会有)。
可以循环$_COOKIE数组来实现批量延时。

------解决方案--------------------
补充一下,你这个需求,为什么不吧 过期时间直接设为O呢??
0时关闭浏览器时失效。
------解决方案--------------------
引用:
Quote: 引用:

setcookie(abc["admin"], "zhang", time() + 3600);
你这不就是设置了过期时间,修改php.ini设置下时区。


假设提交登录信息的时候会通过check.php判断,登录信息正确,则setcookie(abc["admin"], "zhang", time() + 3600);,然后跳转到其他操作页面,这之后就不会再调用check.php了,当浏览其他操作页面的时候,如果不延长过期时间,那用户不管有没有浏览页面在1小时后都会过期,可我要的过期效果是用户无操作的1小时过期

session.gc_maxlifetime = 3600
也就是如果超过60分钟没有访问网站的话,服务器就把你的SESSION销毁了,此时你也就处于登出的状态了!
------解决方案--------------------
你在其他页面继续执行那两条不就行了
------解决方案--------------------
引用:
Quote: 引用:

补充一下,你这个需求,为什么不吧 过期时间直接设为O呢??
0时关闭浏览器时失效。


我需要的是 如果人员A停留某页面过久 可能他去做其他事了 当人员B要来操作他的页面时 会因为超时而无法操作 而如果人员A一直在规定的时间(例如上面的1小时)一直有在操作页面 就会一直不存在过期问题 因为过期会根据当前操作继续延后1小时 

ASP我懂得怎么搞,PHP刚学,还不了解怎么处理

0的时候,只要浏览器不关掉cookie一直不会过期。