会话变量在其他控制器中不起作用(CodeIgniter)

时间:2017-03-13 05:52:11

标签: php codeigniter session codeigniter-hmvc

成功登录后,我在登录控制器中设置了一个会话变量。当我在仪表板控制器中检查变量时,没有找到会话数据。

当我在登录控制器中检查会话时,会话数据存在。检查仪表板控制器时不存在。我也尝试过使用数据库会话但没有成功。

我正在使用带有HMVC的CodeIgniter 3.1.3(基于模块的MX控制器)。我当前问题的代码和截图如下。

我的会话配置文件

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_expiration'] = 7200;
$config['sess_save_path'] = APPPATH . 'cache/';
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;
  

附件1

enter image description here

  

附件2

enter image description here

  

附件3

enter image description here

附件4

  

块引用

enter image description here

3 个答案:

答案 0 :(得分:0)

print_r($_SESSION)在CI中不起作用。在Codeigniter中,我们必须编写以下语法。

print_r($this->session->userdata); 

print_r($this->session->all_userdata());

答案 1 :(得分:0)

如果您没有加载会话库表单,则需要先加载。试试这种方式。

$this->load->library('session');
$this->session->userdata('your_session_variable'); // get single value
or
print_r($this->session->userdata);
or
print_r($this->session->all_userdata()); // get all session data but deprocated in newer version

答案 2 :(得分:0)

您可能会错过在session中加载Dashboardcontroller库。因此请先使用以下方式加载:

class Dashboardcontroller extends CI_Controller{
function __construct(){
    $this->load->library('session');//loads session library
}

然后尝试

 print_r($_SESSION)

print_r($this->session->all_userdata());