一台服务器中的2个活动会话 - Codeigniter 2.2.0

时间:2015-05-05 08:06:35

标签: php codeigniter session

我有一个需要修改整个后端的项目。目前,我已经完成了50%并实时部署。这两个应用程序都在一个域中工作,不同的会话但是相同的数据。

问题是,某些页面显示了不同的帐户和项目。例如:如果客户登录并且他/她的身份证是3,他/她已查看不同身份证的项目和帐户详细信息。

这个问题的奇怪和最困难的部分是,我的这个错误并不总是可见的。我没有在我的设备上遇到此错误。我实现了这个,从我的本地工作并在现场部署,一切似乎都很好。该错误是由客户自己不断报告的。

我的问题是,这是一个域中2个不同会话的原因吗?有没有人已经遇到过这个并且已经解决了?我需要你的帮助。

非常感谢你们所有人提前。

1 个答案:

答案 0 :(得分:0)

同一域上的两个Codeigniter应用程序本身应该不是问题,因为这是受支持的feature。但是,在您的上下文中,您的问题可能是您在两个应用程序之间设置会话的方式。确保每个应用程序中sess_cookie_name都不同。这是在/application/config/config.php(docs)中配置的。我的第一个想法是,如果你的两个应用程序之间有会话交叉,那么它们共享相同的cookie而不是彼此独立。此设置的默认值为ci_session,因此,如果您尚未在至少一个应用程序中更改此设置,则可能是导致问题的原因。

- 编辑 - 如果您正在为会话使用数据库存储(sess_use_database设置为TRUE),则另一种可能的解决方案是为两个会话使用不同的表名。在config.php中,还有另一个sess_table_name设置。尝试在两个应用程序之间进行区分。表结构是相同的,但有两个不同的表可能有助于防止会话交叉。

如果您没有使用数据库,或者如果不同的名称仍然不起作用,我的另一个最好的想法是让它们使用相同的会话,但在双方之间使用不同的变量名称。因此,而不是像clientId这样的东西,你可以做clientIda和cliendIdb。