php – Kohana 3.2会话过期,短期过期按预期工作

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – Kohana 3.2会话过期,短期过期按预期工作脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Kohana 3.2会议即将到期.我目前的配置是:

return array(
'native' => array(
    'name' => 'kohanasession','lifetime' => 0,),);

使用lifetime => 0表示会话将在浏览器关闭时结束.但是,1小时后会话到期.

我也尝试使用不同的生命周期(例如36000 => 10小时),但同样失败了.

如果我使用一个很小的会话寿命(例如10秒),那么到期就会完美.据我检查,似乎如果我想要一个会话的生命周期超过1小时,它将无法正常工作.

最后,我们用于PHP.ini的相关配置

session.save_handler = memcache
session.save_path="tcp://127.0.0.1:11211?PErsistent=1&weight=1&timeout=1&retry_interval=15"
session.cache_limITer = nocache
session.gc_PRobability = 0

我真的迷失在这里.这应该很容易修复,但我无法解决.

解决方法

生命周期=> 0参数可能只影响会话cookie的生命周期.

可能发生的事情是,虽然cookie工作正常,但您在服务器端丢弃了用户的会话数据. PHP有会话垃圾收集,认情况下有点奇怪:它在24分钟空闲时间后将会话标记为已过期,并且每次请求清除所有过期会话的可能性为1%.

您可以增加PHP ini设置session.gc_maxlifetime,或者您可以将session.gc_probability设置为零以完全禁用自动会话垃圾回收.

当然,也有可能将memcached服务器配置为在一段时间后丢弃数据.

更新:对于普通会话处理程序,将session.gc_probability设置为零将是完全禁用自动清理的方法.但是,memcache会话处理程序实际上已经不执行垃圾收集(它的gc回调什么都不做).因此,更改session.gc_probability或session.gc_divisor对该保存处理程序毫无意义.

相反,当将会话数据保存到memcached服务器时,memcache保存处理程序会自动设置到期时间(将过期参数设置为Memcache::set).处理程序从session.gc_maxlifetime设置中读取要使用的到期时间.因此,当您使用Memcache会话保存处理程序时,这是唯一真正重要的GC设置.

@H_301_45@

脚本宝典总结

以上是脚本宝典为你收集整理的php – Kohana 3.2会话过期,短期过期按预期工作全部内容,希望文章能够帮你解决php – Kohana 3.2会话过期,短期过期按预期工作所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。