1

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

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

有时,某处有一个 gremlin 在 n 分钟后启动会话。它是非常随机的,因此很难可靠地复制。

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

我尝试将 debug_backtrace() 添加到所述日志条目中,但这与代码无关(它没有被记录/它在 !session 重定向之前将它吐到屏幕上一瞬间)。

有没有好的/正确的方法来追踪这个?

谢谢伪装。


更新:我在 Session.php 中添加了更多日志条目结果数据库会话被错误地删除/覆盖。怀?

4

3 回答 3

1

这似乎是一个很常见的问题。我已经使用(并且很高兴地接受了推荐) Codeigniter 的本机会话(底部有下载链接)

但是,由于它是一个旧图书馆,您必须进行一些黑客攻击。您可以在图书馆的论坛中查看这些简单的技巧

只需将此文件放在 codeigniter 的库目录中,看看是否能解决您的问题。请反馈。

于 2012-01-27T09:52:48.237 回答
0

服务器似乎存在问题,并且 resolve.conf 映射不正确。

于 2012-02-21T14:23:43.347 回答
0

听起来您的会话 cookie 过早过期。首先检查配置文件中的设置以获取与会话相关的内容。即 $config['sess_expiration'] 值,默认为 7200。即 2 小时。

然后检查你的 php.ini,我相信它默认为 3600。(1 小时)

否则,我会说如果您的代码在 unix 系统上,请尝试

grep -Rn 'sess_destroy' .

您可能要查找的另一件事是任何试图将 NULL 或空值写入会话的地方。有可能您在任何地方都没有 sess_destroy,但您可能有一些 unset($_SESSION) 的效果。

希望这可以帮助。

于 2012-01-27T04:05:24.413 回答