我有一个codeigniter应用程序,我使用Cart类创建一个电子商务商店。
我也在使用Codeigniter-Auth(一个库)在这个系统上创建帐户。我注意到,当我在测试应用程序时注销时,购物车的会话数据也被销毁。
我在库中注意到它是如何记录用户的:
$data = array(
'id' => $row->id,
'name' => $row->name,
'email' => $row->email,
'loggedin' => TRUE
);
$this->CI->session->set_userdata($data);
这就是它如何记录用户:
return $this->CI->session->sess_destroy();
如何告诉codeigniter只销毁用户会话而不是系统中的每个会话?
答案 0 :(得分:3)
使用:
$data = array(
'id' => $row->id,
'name' => $row->name,
'email' => $row->email,
'loggedin' => TRUE
);
$this->session->set_userdata($data); // instead of $this->CI->session->set_userdata($data);
您实际上正在设置4个会话变量!要取消设置特定的一个,请使用:
$this->session->unset_userdata('loggedin');
答案 1 :(得分:2)
我相信你可以使用$this
来引用CodeIgniter的实例。您还必须指定一个"名称"到您的会话数据(变量),以便能够专门取消它。
$this->session->set_userdata('sample_userlog',$data);
$this->session->unset_userdata('sample_userlog');
希望这有帮助。
答案 2 :(得分:1)
文档说明要清除当前会话使用情况 $这 - >会话而> sess_destroy(); 注意:此函数应该是最后一个调用的函数,甚至闪存变量也将不再可用。如果您只想销毁某些项目而不是全部,请使用unset_userdata()。
例如$ this-> CI-> session-> unset_userdata($ data)。