检查会话是否存在时,我收到了未定义的索引错误。仅当会话不存在时才会发生错误。
创建会话的控制器:
$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);
}
我确保已加载会话库。
答案 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是一个函数,而不是数组。
根据文件