我正在使用codeigniter框架工作,我遇到了一些会话问题。
在我的登录表单中我要求输入用户名和密码,然后如果提供的凭据有效,那么 我将它们放入会话变量中。
$user_session_data = array(
'username' => $this->input->post('username'),
'is_logged_in' => 1
);
$this->session->set_userdata($user_session_data);
之前一切顺利。但今天我在一些页面中添加了代码,以便为会话设置一些错误消息。
$error_array[]="There Is An Error When Inserting Data In To The Database";
$this->session->set_userdata(array('upload_errors' => $error_array));
完成此操作后。我可以登录管理区域。但我不能做任何事情它总是要求我再次登录。我认为第二个代码覆盖了登录会话数据。
有什么想法解决这个错误吗?
答案 0 :(得分:4)
请使用此代码在codeigniter中设置会话
$this->session->set_userdata('user_session', $user_session_data);
答案 1 :(得分:0)
您正在调用$this->session->set_userdata()
两次,这将删除所有旧数据并设置新数据。
因此,如果您将其用于错误,则可以使用以下代码
如果要显示错误,codeigniter会话库具有执行此操作的功能
$this->session->set_flashdata('item', 'value');
使用上面的代码设置值并使用
获取该值$this->session->flashdata('item');
参考: http://ellislab.com/codeigniter/user-guide/libraries/sessions.html