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

本文详细解析了PHP中session.gc_maxlifetime参数的作用,指出它定义了session数据的最大生存时间,但实际是否删除依赖于session.gc_probability和session.gc_divisor的比值。此外,还探讨了sessionid的共享与用户下线问题,强调了sessionid的不可共享性以及实现严格过期的方法。同时提到了session存储路径对垃圾回收的影响。
摘要由CSDN通过智能技术生成

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

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值