笨正在生成数据库中的多个会话。为什么?

问题描述 投票:2回答:6

我有一个网站,做页面加载一些Ajax调用。出于某种原因,CodeIgnitor是将4届(我假设为每个Ajax调用)作为加载页面。我在数据库中存储的会话。

我敢肯定,应该只有每个浏览器一个会话。火狐似乎只有一个生成;其他浏览器似乎创造一大堆会话。同一用户多个会话给我一些严重的身份验证问题。

这究竟是为什么?我怎样才能阻止它?

php browser codeigniter session
6个回答
7
投票

嗨,大家好,

我知道这个讨论是前一段时间,但有人可能会发现这个有用。现在我已经使用CI会话,而存储在数据库中其数据。今天,我决定给它一个尝试,并立即在同样的问题上运行:CI为每个页面加载生成新的会话。

我检查了我的服务器时间,时区,我的饼干等 - 所有我能找到,因为在论坛上提示 - 没有结果。于是决定来调试CI Session类自己。长话短说,事实证明,我在我的会话表USER_AGENT场太小 - VARCHAR 50 - 这削减了原USER_AGENT字符串 - 因此CI没有找到我的会议,并生成一个onother。我只是增加了USER_AGENT场大小设置为200,一切工作就像一个魅力。

我忘了提,我使用的是Mac OS X狮子。

同样,希望这能帮助别人。


1
投票

检查您的客户端操作系统的日期/时间,你的服务器上。

我知道为时已晚,但也许有人在寻找答案找到这个网页...

我想这是因为CI上设置包含会话ID Cookie的过期时间,如果服务器和客户端之间的时间差大于到期时间更高的饼干变老,服务器将产生在每个客户端的新会话请求。从来没有找出确切机制的时候,却发生在我身上几次,此修复程序总是工作。


1
投票

我发现这个话题同样的问题:在每一页上CI生成新的会话。可能的解决办法:删除站点名称(NOT“my_test_site.com”,而是“my-test-site.com”)强调。至少,这帮助了我的情况。


0
投票

检查你的config.php文件,并确保cookie的选项都正确填写。如果不是它不能跟踪用户,它会根上的每个页面加载一个新的会话。


0
投票

检查您的客户端操作系统的日期/时间,你的服务器上。

我有同样的情况,并确认了溶液为修复


-1
投票
$config['cookie_domain'] = "example.com";

在这个片段中使用您的域名。

© www.soinside.com 2019 - 2024. All rights reserved.