CodeIgniter会话遭到破坏

时间:2018-09-19 05:47:30

标签: php codeigniter-3

我有两个在同一台服务器上运行的codeigniter应用程序,它们共享同一数据库。 已使用数据库会话驱动程序对它们进行配置,该数据库会话驱动程序将各个会话存储在不同的表中

  

例如:对于app1,它是表ci_session_app1,而app2是表   ci_session_app2

为app1配置

$config['sess_driver'] = 'database';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions_app1';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

为app2配置

$config['sess_driver'] = 'database';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = 'ci_sessions_app2';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

我正在尝试在同一浏览器窗口上登录两个应用程序,出现的问题是当我登录app1并继续登录app2时,成功的app2登录将从app1中注销用户。反之亦然。

此外,当我从其中一个应用程序(例如app1)注销时,另一个应用程序(app2)也会导致用户注销。

我在Internet上阅读了几篇有关CI会话问题的文章,其中涉及太多Ajax请求,但我怀疑我的情况与此类似。有人可以指点一下吗?

我的CI版本是3.1.5(如Core的CodeIgniter.php文件中所示)

1 个答案:

答案 0 :(得分:0)

只需在配置文件中为每个应用设置单独的 encryption_key

$config['encryption_key'] = 'app_enc_key';