我正在使用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 ) )
我不知道为什么会话类用我的会话数组变量返回这个相同的对象。
答案 0 :(得分:0)
在注销时,取消设置您单独提供的所有用户数据,然后销毁会话。
像这样使用它。
$this->session->unset_userdata('id');
$this->session->unset_userdata('first_name');
$this->session->unset_userdata('last_name');
.....
等等。
然后使用下面的代码来销毁会话。
$this->session->sess_destroy();
之后检查并查看用户数据是否仍然存在。
希望这会有所帮助。