2012-06-21 226 views
3

当存储在数据库中时,我遇到了CI会话中非常奇怪的问题。我正在使用会话来存储关于用户是否在我的网站上登录的信息。出于某种原因,我的一位来自立陶宛的朋友(我提到该国有相关情况)无法登录。当我监控会话表时,似乎她正在为每个去过的页面创建一个新会话。她尝试使用各种浏览器,但无论浏览器如何,都出现同样的问题。没有其他人有这个问题(所有其他测试者都在立陶宛之外)。CodeIgniter数据库会话问题:sess_expire_on_close

这是奇怪的事情:我能够通过设置sess_expire_on_close = TRUE来解决她的问题。我猜这不可能是修复,但每当我将其设置为FALSE,问题就会回来。

我的另一个问题是,我似乎偶尔会丢失会话数据,这意味着用户会被注销。不知道是什么原因造成的。我会发布一个不同的SO问题,但认为在这里提到它可能会有用。

+0

我对这个问题其实很感兴趣,你能给我们一个你的会话数据库转储你的朋友浏览网站的例子吗? –

+0

AS Steven询问 - 你能否提供一些来自数据库的会话数据转储,以便我们可以看到发生了什么。你可以请你也发布所有你的COOKIE + SESSION配置信息 – Laurence

+0

会做。试图与立陶宛朋友协调一段时间。 – StackOverflowNewbie

回答

1

您使用的是什么版本的CodeIgniter? CI 2.1.1在发布时有一个session bug,会话不会从数据库中删除,还有其他问题。 如果你使用的是2.1.1版(唯一受版本影响的版本),我建议升级到2.1.2并重试。

0

您的ci会话配置是否设置为匹配ip地址?如果是这样,你的朋友可能会在3G移动连接,并可能在冲浪时不断改变她的IP地址...只是一个猜测。

+0

我会研究这种可能性。任何想法为什么我的修复解决了这个问题? – StackOverflowNewbie

+0

不是,我需要考虑通过:) – medonja

+0

不是3G手机.. – StackOverflowNewbie

0

我记得几年前在英国的一家互联网服务提供商有类似的问题。即使不是每个请求,他们的IP也几乎改变了。我认为会议与知识产权相关。所以每次她访问另一页时,她都被分配到一个新的会话。

每次访问您的页面时都请检查她的IP。