>백엔드 개발 >PHP 튜토리얼 >php session存活时间问题,求帮助

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

WBOY
WBOY원래의
2016-06-23 13:58:21796검색

下面是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 操作

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.