作者:tttt | 来源:互联网 | 2013-06-25 10:44
很多人都遇到过PHP的SESSION总是会出现不过期的现象,随着浏览器进程走,这里简单介绍下:
在PHP中,设置php.ini,找到session.gc_maxlifetime = 1440 (PHP5默认24秒)
这里你可以随便设置一下过期时间.但是有人说设置以后,好象不起作用!
其实不是不起作用,而是因为系统默认:
session.gc_probability = 1
session.gc_divisor = 1000
也就是说,garbage collection 有个概率的,1/1000就是session 1000次才有一次被回收。
只要你的访问量大了,那就能达到回收的效果.要不然你也可以设置一下session.gc_divisor 的值,
比如:session.gc_divisor = 1,这样就能明显的看到SESSION过期的效果了.
或着你换个思路解决session过期的问题
比如:
用session记录个时间,第几次访问都检查是否过了你想保留的时间,
超过后,就手动把session注销,这个也可以实现session过期的设置.
很多人都遇到过PHP的SESSION总是会出现不过期的现象,随着浏览器进程走,这里简单介绍下:
在PHP中,设置php.ini,找到session.gc_maxlifetime = 1440 (PHP5默认24秒)
这里你可以随便设置一下过期时间.但是有人说设置以后,好象不起作用!
其实不是不起作用,而是因为系统默认:
session.gc_probability = 1
session.gc_divisor = 1000
也就是说,garbage collection 有个概率的,1/1000就是session 1000次才有一次被回收。
只要你的访问量大了,那就能达到回收的效果.要不然你也可以设置一下session.gc_divisor 的值,
比如:session.gc_divisor = 1,这样就能明显的看到SESSION过期的效果了.
或着你换个思路解决session过期的问题
比如:
用session记录个时间,第几次访问都检查是否过了你想保留的时间,
超过后,就手动把session注销,这个也可以实现session过期的设置.