codeigniter中的会话问题

时间:2015-01-02 00:27:56

标签: php codeigniter session codeigniter-2

我正在使用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] => d@gmail.com [score] => 449 [picture] => images/301399704385.jpg [country] => USA [city] => na [userid] => d430 ) ) 

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

1 个答案:

答案 0 :(得分:0)

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

像这样使用它。

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

.....

等等。

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

$this->session->sess_destroy();

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

希望这会有所帮助。