CodeIgniter函数清除会话

时间:2011-03-19 21:09:38

标签: php session codeigniter

如果我取消注释此代码,我会在网站上找到空白页面。如果我评论这个,网站工作。 这是我的退出代码(会话授权):

    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;
    }

我得到了我的用户名。第一个代码中的错误在哪里?我来自俄罗斯,很抱歉英语不好。

5 个答案:

答案 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();

它会清除会话缓冲区,以便您获得注销效果。