Выйти Уничтожить CodeIgniter - PullRequest
0 голосов
/ 05 марта 2020

Почему я не могу уничтожить сеанс при выходе из системы?

Мой контроллер аутентификации

public function index(){
    $this->data['page_title'] = "User Login";
    $this->load->view('templates/master', $this->data);
}

public function login(){
    $username = $_POST['username'];
    $password = $_POST['password'];
    $data = $this->User_model->login ($username, $password);
    if($data){  
    $this->session->set_userdata('users', $data);
    $session_data = array(
        'username' => $username);
    $this->session->set_userdata($session_data);
    redirect('users');


    }
    else{
        $this->session->set_flashdata
        ('loginfail','<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
        <strong>Danger !</strong> Invalid Email or Password .</div>');
       return redirect("auth");


    } 
}

public function logout()
{
    $this->session->unset_userdata(array('username','id')); 
    $this->session->sess_destroy(); 
    echo '<pre>'; print_r($this->session->all_userdata()); 
    exit; return redirect("auth");

}

Мой PHP:

<a href="<?= base_url('auth/logout')?>" data-toggle="modal" data-target="#logoutModal">
    <i class="fas fa-sign-out-alt fa-sm fa-fw mr-2 text-gray-400"></i>
    Logout
  </a>

1 Ответ

1 голос
/ 05 марта 2020

Попробуйте это

 <?php defined('BASEPATH') OR exit('No direct script access allowed');
      class Auth extends MY_Controller {

    public function index(){
        /* You Should check Session before loading page */
      if(empty($this->session->userdata('id'))){
         redirect('users');
       }    
        $this->data['page_title'] = "User Login";
        $this->load->view('templates/master', $this->data);

         }
    public function login(){
        $username = $_POST['username'];
        $password = $_POST['password'];
        $data = $this->User_model->login ($username, $password);
        if($data){  
        $this->session->set_userdata('users', $data);
        $session_data = array(
            'username' => $username);
        $this->session->set_userdata($session_data);
        redirect('users');


        }
        else{
            $this->session->set_flashdata
            ('loginfail','<div class="alert alert-danger"><a href="#" class="close" data-dismiss="alert" aria-label="close">&times;</a>
            <strong>Danger !</strong> Invalid Email or Password .</div>');
           return redirect("auth");


        } 
    }
    public function logout()
    {
        $this->session->unset_userdata(array('username','id'));
        $this->session->sess_destroy();
        redirect("users");

    }
}
...