cookie设置了生命周期30分钟 一直在操作 30分钟后为什么cookie不过期呢?

查看:364
本文介绍了cookie设置了生命周期30分钟 一直在操作 30分钟后为什么cookie不过期呢?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

cookie设置了生命周期30分钟,期间一直在操作,30分钟后为什么cookie不过期呢?
比如:先判断是否登录:
如果没有登录,让用户进行登录,登录成功后记录cookie用户信息,并设置生命周期为30分钟;
如果已经登录,进行其他对应的操作,并没有重新设置生命周期。
问题:如果用户长时间不做任何操作(时间大于30分钟),cookie会失效,需要用户重新登录。如果用户一直在操作呢,为什么30分钟后cookie不会失效呢?在用户操作页面的情况下是cookie本身更新的有效时间吗?

解决方案

cookie是单页面的,cookie 是每次都是重新生成的,如果设置了时间,是不是即便一直操作,时间到了也会失效的
自己写了个小例子:
test.php 设置生命周期均为10秒

setcookie('history_id','10000',time()+10,'/');
setcookie('history_id1','20000',time()+10,'/');

test1.php 判断并读取cookie

if ($_COOKIE['history_id']) {
    setcookie('history_id','10000',time()+10,'/');
}
echo $_COOKIE['history_id'] ;
echo $_COOKIE['history_id1'] ;

先刷新一下test.php页面,然后一直刷新test1.php页面,10秒过后,可看到由于每次刷新test1.php,history_id都重新生成,所以history_id的cookie值一直存在,相反,history_id1的cookie只在test.php设置过一次,即便不停的刷新test1.php, 10秒过后history_id1的cookie值就不存在了

这篇关于cookie设置了生命周期30分钟 一直在操作 30分钟后为什么cookie不过期呢?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆