我有一个php会话。终身到期时间设定为当前日期(2013年12月30日)的1周。
方案: 1.将系统时间更改为2014年1月6日,然后到期日更改为2014年1月13日(即2014年1月6日起的一周)。 2.现在我再次将系统时间更改为当前日期和时间(2013年12月30日),
怀疑:截止日期仍显示为2014年1月13日, 不应该是1月6日,因为它是从今天的日期开始的一周?
提前致谢!!
答案 0 :(得分:1)
当您增加计算机的时间时,Cookie已过期,因此未发送。因此,服务器生成了一个新的有效期限的cookie。
当您减少计算机上的时间时,Cookie仍然有效,因此已发送。 PHP看到了有效的cookie,因此没有理由发布一个新的有效期限的cookie。
如果你想强制php发出一个新的有效期限的cookie,即使旧的cookie仍然有效,那么在调用session_start之前将这段代码放入你的代码中。
if(isset($_COOKIE[session_name()]))
{
session_id(session_id());
}