如果我取消注释此代码,我会在网站上找到空白页面。如果我评论这个,网站工作。 这是我的退出代码(会话授权):
function exit($action='') {
if ($action == "true") {
echo "Exit.";
return;
}
$login = $this->session->userdata('username');
if ($login == NULL) {
redirect('/blog/login/', 'location', '301');
}
$array_itmes = array('username' => "$login");
$this->session->unset_userdata($array_items);
redirect('/blog/exit/true/', 'location', '301');}
正常登录后:
$newdata = array('username' => "$name");
$this->session->set_userdata($newdata);
在我使用的其他动作中:
$login = $this->session->userdata('username');
if ($login !== NULL) {
echo $login;
}
我得到了我的用户名。第一个代码中的错误在哪里?我来自俄罗斯,很抱歉英语不好。
答案 0 :(得分:7)
只需将其替换为$this->session->sess_destroy();
答案 1 :(得分:3)
$array_val = array('userid' => '','username' => '', 'email' => '');
$this->session->unset_userdata($array_val);
这是删除单个会话详细信息。
答案 2 :(得分:1)
安东的回答将立即破坏整个会议。如果您想删除整个会话数据,请使用类似Anton所说的
$this->session->sess_destroy();
但是,如果您只想破坏下面使用的特定用户数据,
$this->session->unset_userdata('user_name');
希望这会有所帮助,谢谢!
编码愉快!
答案 3 :(得分:1)
要清除当前会话(例如,在注销过程中),您可以简单地使用PHP的session_destroy()
函数或sess_destroy()
方法。两者将以完全相同的方式工作:
session_destroy();
// or
$this->session->sess_destroy();
答案 4 :(得分:0)
你也可以使用
session()->destroy();
它会清除会话缓冲区,以便您获得注销效果。