Codeigniter - 检查会话是否存在时未定义的索引错误

时间:2017-12-12 21:10:24

标签: php codeigniter

检查会话是否存在时,我收到了未定义的索引错误。仅当会话不存在时才会发生错误。

创建会话的控制器:

$data = array(
                'email' => $this->input->post('email'),
                'is_logged_in' => TRUE
            );

$this->session->set_userdata($data);
redirect('site/index');

进行检查的控制器:

$is_logged_in = $this->session->userdata['is_logged_in']; // error occurs here

if(!isset($is_logged_in) || $is_logged_in !== TRUE)
{
    $data['main_content'] = 'login_form';
    $this->load->view('includes/template', $data);
}

我确保已加载会话库。

2 个答案:

答案 0 :(得分:3)

您将方法视为关联数组。在codeigniter中userdata是一个函数,它返回传递它的索引的值。所以你的行:

$is_logged_in = $this->session->userdata['is_logged_in'];

应该是:

$is_logged_in = $this->session->userdata('is_logged_in');

答案 1 :(得分:1)

$this->session->userdata['is_logged_in'];

应该是

$this->session->userdata('is_logged_in');

差异为()而不是[],因为userdata是一个函数,而不是数组。

根据文件

Retrieving Session Data