假设现在有一个登陆功能,并且用户可以选择X天内自动登陆
实现方法:
登陆后肯定要把uid记录在SESSION中
而SESSIONID则会记录在COOKIE中
那么现在到登陆界面时,只需通过COOKIE中的SESSIONID去查找服务器上的SESSION文件,看是否有uid,存在则代表运行自动登陆,不存在则说明已经登出了
但问题在于关闭浏览器时,默认会把COOKIE中的值清空,所以必须设置COOKIE的过期时间
两种方法:
1.在PHP.ini中设置 session.cookie_lifetime 和 session.gc_maxlifetime这两个值
2.代码中设置:
$PHPSESSID = $_COOKIE['PHPSESSIID'];
setcookie('PHPSESSID',$PHPSESSID,time()+X*24*60*60)
第一种方法是在配置文件修改,那么会把全部的COOKIE值都设为相同的过期时间,没法根据不同的用户作出不同的响应了
第二种方法控制力更强一些!
另外 COOKIE的过期判断,根据客户端的系统时间来判断,也就是说如果设置了10天的过期时间,然后把自己的电脑的系统时间改为15天后,那么COOKIE会直接过期
如果浏览器一直开着,则不会过期,继前面的步骤再把时间改为现在,COOKIE还是存在的