简体   繁体   中英

stay in dashboard when the user is logged

how can I stay in dashboard when the user is logged even though when the user write localhost/storeLTE/login/ then stay home. but my code doesnt work.

public function getAccess(){
            if ($this->session->set_userdata('username')) {
                redirect('home');
            }
            $username = $this->security->xss_clean($this->input->post('username'));
            $password = $this->security->xss_clean($this->input->post('password'));
            $array = $this->User_model->login($username,$password);
            if($array[0] == 0){
                echo 0;
            }else{
                $data_session = array(
                    'id' => $array[0]['iduser'],
                    'username' => $array[0]['username'],
                    'password' => $array[0]['password'],
                    'name' => $array[0]['name'],
                    'last_name' => $array[0]['last_name'],
                    'type' => $array[0]['idType'],
                    'logged_in' => TRUE
                );
                $this->session->set_userdata('log',$data_session);
            }
        } 
if ($this->session->set_userdata('username')) {

should be

if ($this->session->userdata('username')) {

or

if ($this->session->userdata('username') !== NULL) {
//since NULL is returned if item is not found

Docs .

FYI

Its is NOT a good sign of STORING PASSWORD IN THE SESSION. Its better to store name , type , logged_in , id .


In Controller

function getAccess(){

    $this->load->library('session'); # load library here or in autoload.php

    if($this->session->userdata('logged_in') == TRUE) 
    {
        redirect('home');
    }
    else
    {
        $username = $this->security->xss_clean($this->input->post('username'));
        $password = $this->security->xss_clean($this->input->post('password'));

        $result = $this->User_model->login($username,$password);
        if($result == FALSE)
        {
            echo 'Invalid Login';
        }
        else{
            $data_session = array(
                'id' => $result[0]['iduser'],
                'username' => $result[0]['username'],  # Better to remove
                'password' => $result[0]['password'], # Better to remove
                'name' => $result[0]['name'],
                'last_name' => $result[0]['last_name'],
                'type' => $result[0]['idType'],
                'logged_in' => TRUE
            );
            $this->session->set_userdata('log',$data_session);

            $this->load->view('home'); # Load the view
        }
    }

} 

In Model

function login($username,$password)
{
    $query = $this->db->query("SELECT * FROM table name WHERE username = '$username' AND password = '$password'");
    $result = $query->result_array();

    if (count($result) > 1 || empty($result)) 
    {
        return FALSE;
    } 
    else {
        return $result;
    }       
}
  if ($this->session->set_userdata('username')) {
                redirect('home');
            }

change this to

  if ($this->session->userdata('username') !='') {
                redirect('home');
            }

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM