как предотвратить множественный вход в codeigniter - PullRequest
0 голосов
/ 04 июня 2018

Я хочу запретить моим пользователям многократный вход в систему, после входа пользователя в систему, если при входе с таким же именем пользователя они предлагают «учетная запись уже зарегистрирована на другом устройстве».

Мой Контроллер входа

public function login()
{

    $this->logged_in();

    $this->form_validation->set_rules('email', 'Email', 'required');
  $this->form_validation->set_rules('password', 'Password', 'required');

    if ($this->form_validation->run() == TRUE) {
        // true case
        $email_exists = $this->model_auth->check_email($this->input->post('email'));

        if($email_exists == TRUE) {
            $login = $this->model_auth->login($this->input->post('email'), $this->input->post('password'));

            if($login) {

                $logged_in_sess = array(
                    'id' => $login['id'],
                    'username'  => $login['username'],
                    'email'     => $login['email'],
                    'logged_in' => TRUE
                );

                $this->session->set_userdata($logged_in_sess);
                redirect('dashboard/', 'refresh');
            }
            else {
                $this->data['errors'] = '<b>Signin account failed</b>';
                $this->load->view('login', $this->data);
            }
        }
        else {
            $this->data['errors'] = '<b>Signin account failed</b>';
            $this->load->view('login', $this->data);
        }   
    }
    else {
        // false case
        $this->load->view('login');
    }   
}

и у меня есть таблица с именем "ci_session", так что я буду хранить сеанс в моей базе данных.

Надеюсь, кто-нибудь поможет мне здесь.Благодаря.

1 Ответ

0 голосов
/ 04 июня 2018

Лучший способ - отслеживать уже вошедших в систему пользователей, используя сеанс и файлы cookie.

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

Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...