Heim >Backend-Entwicklung >PHP-Tutorial >php session存活时间问题,求帮助

php session存活时间问题,求帮助

WBOY
WBOYOriginal
2016-06-23 13:58:21796Durchsuche

下面是a.php 和b.php 两个文件 php.ini设置session.gc_maxlifetime 等于1


访问a.php后生成session 然后再访问b.php 过1秒,5秒,10秒再访问b.php为什么b.php里面的session一直都有值呢?为什么没有过期呢?


回复讨论(解决方案)

session.gc_maxlifetime 表示在最后一次访问的 session.gc_maxlifetime 秒后 sessionid 可以被删除
注意:可以被删除,并不是一定被删除
是否被删除,取决于 session.gc_probability/session.gc_divisor 的比值
php默认:
session.gc_probability = 1
session.gc_divisor = 1000
即被删除的可能性为 千分之一

另外在某些服务器中,如果 session.save_path 指向的不是操作系统的临时文件目录时,gc 进程将作用不到他
session 临时文件将永久存在,直到你手动进行垃圾清理

session.gc_maxlifetime 表示在最后一次访问的 session.gc_maxlifetime 秒后 sessionid 可以被删除
注意:可以被删除,并不是一定被删除
是否被删除,取决于 session.gc_probability/session.gc_divisor 的比值
php默认:
session.gc_probability = 1
session.gc_divisor = 1000
即被删除的可能性为 千分之一

另外在某些服务器中,如果 session.save_path 指向的不是操作系统的临时文件目录时,gc 进程将作用不到他
session 临时文件将永久存在,直到你手动进行垃圾清理


原来是这样,非常感谢!
还有个问题也不是很清楚,sessionid可以共享,那是如何做到踢用户下线的呢?

 如何设置一个严格30分钟过期的Session

理论上说,sessionid 不可以共享
因为 sessionid 是经 cookie 传递的,且有效期为 0

踢用户下线,一般需使用自定义的 session 操作

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn