首页 > 解决方案 > 两个 CodeIgniter 应用程序会话相互覆盖

问题描述

所以我的服务器上有 2 个 ci 应用程序(不同的项目文件夹),当使用相同的浏览器访问时,会话会相互覆盖。

我只是注意到这一点,因为我认为即使会话变量名称相同,默认情况下它也会有所不同。当我将 set_userdata 和 sess_destroy 应用于这两个应用程序时,我在这里发现了一些问题。我彼此使用几乎相同的变量

                            $data_session = array(
                            'EMP_ID' => $data['EMP_ID'],
                            'EMP_FULL_NAME' => $data['EMP_FULL_NAME'],
                            'EMP_F_NUM' => $data['EMP_F_NUM'],
                            'EMP_EMAIL' => $data['EMP_EMAIL'],
                            'LEAD_STATUS' => $data['LEAD_STATUS'],
                            'BRANCH_ID' => $row_br['BRANCH_ID'],
                            'BRANCH_NAME' => $row_br['BRANCH_NAME'],
                            'BRANCH_CODE' => $row_br['BRANCH_CODE'],
                            'DEPART_ID' => $row_dep['DEPART_ID'],
                            'DEPART_NAME' => $row_dep['DEPART_NAME'],
                            'STATUSLOGIN' => "LOGIN",
                            'CONTINUE' => 'NEW'
                            );
                            $this->session->set_userdata($data_session);

我如何使它彼此不同?在每个应用程序上设置用户数据时,我需要制作不同的变量吗?

标签: codeignitersession

解决方案


我的猜测是您可能正在使用旧项目的副本来创建新项目。为此,您还需要更改application/config/config.php文件中会话的配置变量。

因此,您需要更新一个会话名称变量。

$config['sess_cookie_name'] = 'second_project_session';

推荐阅读