【问题标题】:CodeIgniter function to clear sessionCodeIgniter 函数清除会话
【发布时间】:2011-03-19 21:09:37
【问题描述】:

如果我取消注释此代码,我会在网站上看到空白页。如果我对此发表评论,则网站有效。 这是我的退出代码(按会话进行身份验证):

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

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

【问题讨论】:

  • 不确定我是否 100% 关注你,这就是为什么我无法回答你的问题,但定义一个名为“exit”的方法可能会有问题,因为它是 PHP 的保留字。尝试重命名它,看看是否有任何改变。

标签: php session codeigniter


【解决方案1】:

只需将其替换为$this->session->sess_destroy();

【讨论】:

    【解决方案2】:
    $array_val = array('userid' => '','username' => '', 'email' => '');
    
    $this->session->unset_userdata($array_val);
    

    这是删除单个会话详细信息。

    【讨论】:

      【解决方案3】:

      Anton 的回答将立即破坏整个会话。如果您想删除整个会话数据,请像 Anton 所说的那样使用,

      $this->session->sess_destroy();
      

      但如果您只想销毁下面使用的特定用户数据,

      $this->session->unset_userdata('user_name');
      

      希望对你有帮助,谢谢!!

      编码愉快!!

      【讨论】:

        【解决方案4】:

        要清除当前会话(例如,在注销期间),您可以简单地使用 PHP 的 session_destroy() 函数或 sess_destroy() 方法。两者的工作方式完全相同:

        session_destroy();
        
        // or
        
        $this->session->sess_destroy();
        

        【讨论】:

          【解决方案5】:

          你也可以使用 session()->destroy();

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

          【讨论】:

            猜你喜欢
            • 2016-03-09
            • 1970-01-01
            • 1970-01-01
            • 2015-08-14
            • 1970-01-01
            • 2010-12-05
            • 2015-04-16
            • 2011-10-02
            相关资源
            最近更新 更多