Codeigniter会话变量不起作用

时间:2013-04-19 04:00:49

标签: php codeigniter session

我正在使用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));

完成此操作后。我可以登录管理区域。但我不能做任何事情它总是要求我再次登录。我认为第二个代码覆盖了登录会话数据。

有什么想法解决这个错误吗?

2 个答案:

答案 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