【问题标题】:Logout Button in CodeigniterCodeigniter 中的注销按钮
【发布时间】:2018-04-14 10:36:21
【问题描述】:

如果我的带有会话的登录控制器是这样的,我该如何创建注销按钮?

function login_user() {   
    $user_login = array(  
         'username'=>$this->input->post('username'),  
         'password'=>$this->input->post('password')
    );
    $data=$this->Infoserbilis_model->login_user($user_login['username'],$user_login['password']);
    if($data) {
       $session_data['logged_in'] = TRUE;
       $this->session->set_userdata($session_data);
       //$this->session->set_userdata('logged_in', $session_data);
       redirect('Infoserbilis/admin_page', 'refresh');   
    } else {
       echo '<script>alert("Invalid Username or Password");</script>';
       redirect('Infoserbilis/index', 'refresh');
    }
}

我在函数注销时尝试了$this-&gt;session-&gt;sess_destroy();,但无济于事。提前致谢

public function logout() {

// Removing session data
$this->session->sess_destroy();
echo '<script>alert("Bye!");</script>';
redirect('Infoserbilis/index', 'refresh');
}

【问题讨论】:

  • 尝试sess_destroy时的错误信息是什么
  • 没有错误。它只是停留在我的管理页面上。不注销。感谢您的回复。
  • sess_destroy 只是破坏当前会话,无法为您重定向页面,您需要手动重定向页面,请参阅我的答案。 @jb 纳隆
  • 我的注销代码已重定向。但仍然无济于事。抱歉,我没有包括我的注销控制器。
  • logout() 重定向到“Infoserbilis/index”,这是管理页面...对吗?你真的希望它去哪里?将该控制器/方法放入redirect() 调用中。

标签: php codeigniter session logout


【解决方案1】:

您正在重定向到 Infoserbilis 控制器中的 index 函数。在该功能中检查会话是否处于活动状态。
这是一个例子:

public function index() {
    if($this->session->userdata('is_logged_in') == true){
        //load the required view
    }
    else {
        redirect('controller/login');
    }
}

或者你可以从logout函数重定向到login

public function logout() {
    $this->session->sess_destroy();
    redirect('controller/login');
}

【讨论】:

    【解决方案2】:
    function logout() {
    
                $this->session->unset_userdata('is_searched');
                redirect('CONTROLLER/login');
                       }
    

    【讨论】:

    • 虽然只有代码的答案可能会解决问题,但一些解释将有助于理解您是如何解决问题的。
    【解决方案3】:

    好的,根据您的消息,$this-&gt;session-&gt;sess_destroy() 只是破坏当前会话,您需要手动重定向页面。在redirect()函数中写下你要重定向到的具体路由

    /**
     * logout
     */
    public function logout()
    {
        $this->session->sess_destroy();
    
        redirect('/');
    }
    

    【讨论】:

      猜你喜欢
      • 2014-05-08
      • 2012-05-12
      • 2017-01-18
      • 2012-08-25
      • 2012-03-14
      • 2011-07-05
      • 1970-01-01
      • 1970-01-01
      • 2015-10-04
      相关资源
      最近更新 更多