Мой код входа в систему codeigniter работает некоторое время и останавливается - PullRequest
0 голосов
/ 11 октября 2018

Мой код входа в систему codeigniter работает некоторое время, а затем останавливается.И я также заметил, что всякий раз, когда я очищаю кеш браузера и другие параметры, он также перестает работать, пока я снова не изменю имя пользователя и пароль.

Это код моего контроллера

// Log in user
    public function login(){
        $data['title'] = 'Sign In';

        $this->form_validation->set_rules('username', 'Username', 'required');
        $this->form_validation->set_rules('password', 'Password', 'required');

        if($this->form_validation->run() === FALSE){
            $this->load->view('templates/header');
            $this->load->view('admins/index', $data);
            $this->load->view('templates/footer');
        } else {

            // Get username
            $username = $this->input->post('username');
            // Get and encrypt the password
            $password = md5($this->input->post('password'));

            // Login user
            $user_id = $this->admin_model->login($username, $password);

            if($user_id){
                // Create session
                $user_data = array(
                    'user_id' => $user_id,
                    'username' => $username,
                    'logged_in' => true
                );

                $this->session->set_userdata($user_data);

                // Set message
                //set message
                $this->session->set_flashdata('admin_loggedin', 'Welcome, You are now logged in');

                redirect('admins/view');
            } else {
            // Set message
                $this->session->set_flashdata('login_failed', 'Oops, Your username or password is not correct!');

                redirect('admins');
            }       
        }

И этомой код модели

// Log user in
    public function login($username, $password){
        // Validate
        $this->db->where('username', $username);
        $this->db->where('password', $password);

        $result = $this->db->get('admins');

        if($result->num_rows() == 1){
            return $result->row(0)->id;
        } else {
            return false;
        }
    }

Это мой код .htaccess

 RewriteEngine On
RewriteCond $1 !^(index\.php|assets|images|js|css|uploads|favicon.png)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ ./index.php/$1 [L]
RewriteCond %{REQUEST_URI} ^system.*

1 Ответ

0 голосов
/ 11 октября 2018

Если вы считаете, что по умолчанию CodeIgniter использует сеансы для хранения вошедшего в систему пользователя.Таким образом, это может быть вашим сценарием - очистив кеш браузера, вы очистите cookie, в котором хранится идентификатор сеанса, и сеанс становится недействительным, что приводит к выходу из системы.

...