追踪神秘的会话结束错误

时间:2012-01-26 20:48:56

标签: codeigniter pyrocms

我正在使用使用ion_auth的Codeigniter / PyroCMS。

我的会话内容设置了两个小时。我正在使用数据库会话。

某个地方有一个gremlin,有时会在n分钟后启动会话。它是非常随机的,因此 hard 不可能可靠地再现。

我已经在Session类中添加了日志条目(特别是sess_destroy),但这只记录了我已经知道的被销毁的会话。

我尝试将一个debug_backtrace()添加到所述日志条目中,但是没有使用teh代码(它没有被记录/它在!会话重定向之前将其分配到屏幕上一瞬间)。

有没有一种好的/正确的方法来追踪它?

谢谢你。


更新:我在Session.php中添加了一些日志条目关闭数据库会话被错误删除/覆盖。 WHAI?

3 个答案:

答案 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映射不正确的问题。