2015-01-02 70 views
0

我正在使用codeigniter会话。当我的用户登录会话成功地存储我想要存储在其中的数据记录并且还删除登出阶段中的特定记录。它正常工作。codeigniter中的会话问题

但问题是,当我在使用下面的代码

$this->session->all_userdata(); 

的它显示两条记录登录和其他被默认存储在一个存储打印所有存储在会话中的数据。如果我在登录之前检查相同的东西,那么在会话数组中显示一个带有一些默认值的记录。就像这样:

Array ([session_id] => c59388c6a8 [ip_address] => 230.230.230.230 [user_agent] => Mozilla/5.0 (Windows NT 6.3; WOW64; rv:35.0) Gecko/20100101 Firefox/35.0 [last_activity] => 1420158230 [user_data] => [last_rec] => stdClass Object ([id] => 30 [first_name] => Daniel [last_name] => james [user_email] => [email protected] [score] => 449 [picture] => images/301399704385.jpg [country] => USA [city] => na [userid] => d430)) 

我不知道为什么会返回类此相同的对象我会数组变量。

+1

加载会话驱动程序时,它将为当前用户创建一个会话,而不管它们是否“登录”。你使用任何饼干? –

回答

0

在注销时,取消设置您单独给出的所有用户数据,然后销毁会话。

像这样使用它。

$this->session->unset_userdata('id'); 
$this->session->unset_userdata('first_name'); 
$this->session->unset_userdata('last_name'); 

..... 

等等。

然后你使用下面的代码来销毁会话。

$this->session->sess_destroy(); 

之后,检查用户数据是否仍然存在。

希望这会有所帮助。