我正在使用使用ion_auth的Codeigniter / PyroCMS。
我的会话内容设置了两个小时。我正在使用数据库会话。
某个地方有一个gremlin,有时会在n分钟后启动会话。它是非常随机的,因此 hard 不可能可靠地再现。
我已经在Session类中添加了日志条目(特别是sess_destroy),但这只记录了我已经知道的被销毁的会话。
我尝试将一个debug_backtrace()添加到所述日志条目中,但是没有使用teh代码(它没有被记录/它在!会话重定向之前将其分配到屏幕上一瞬间)。
有没有一种好的/正确的方法来追踪它?
谢谢你。
更新:我在Session.php中添加了一些日志条目关闭数据库会话被错误删除/覆盖。 WHAI?
答案 0 :(得分:1)
这似乎是一个很常见的问题。我用过(并乐意接受为推荐) Codeigniter's Native session(底部有一个下载链接)
但是,由于它是一个旧图书馆,你必须做一些黑客攻击。您可以在library's forum
中查看这些简单的黑客攻击将此文件放在codeigniter的库目录中,看看是否解决了您的问题。请反馈。
答案 1 :(得分:0)
听起来你的会话cookie过早到期了。首先检查配置文件中与会话相关的内容的设置。即$ config ['sess_expiration']值,默认为7200.这是2小时。
然后检查你的php.ini,我认为默认为3600.(1小时)
否则,我会说如果您的代码在unix系统上,请尝试
grep -Rn 'sess_destroy' .
您可能想要查找的另一件事是尝试可能向会话写入NULL或空值的任何地方。你可能在任何地方都没有sess_destroy,但你可能会有一些东西产生未设置的效果($ _ SESSION)。
希望这有帮助。
答案 2 :(得分:0)
似乎是服务器和resolve.conf映射不正确的问题。