Как автоматически обновить столбец в базе данных - PullRequest
1 голос
/ 08 февраля 2020

У меня есть столбец session_id в таблице пользователей, и я установил значение по умолчанию равным 0, и я хочу, чтобы оно автоматически изменилось на 1, когда пользователь успешно войдет в систему

Это изображение базы данных

Database

А для контроллера и модели входа в систему я использую библиотеку ion_auth

Вы можете увидеть контроллер здесь Контроллер аутентификации. php

И модель Ионная модель аутентификации

И для представления я использую этот form_login. php

    <!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
  <title>Login-session</title>
  <link href="https://fonts.googleapis.com/css?family=Montserrat:500&display=swap" rel="stylesheet">
  <link href="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
  <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.1.1/js/bootstrap.min.js"></script>
  <script src="<?php echo base_url() ?>assets/Parsley/bower_components/jquery/dist/jquery.js"></script>
  <script src="<?php echo base_url() ?>assets/Parsley/dist/parsley.min.js"></script>
  <!-- css -->
  <link rel="stylesheet" href="<?php echo base_url() ?>assets/all-css/login.css"/>
</head>
<body>
  <div class="login">
    <h4 style="text-align: center;">Login To Your Start</h4>
    <div id="infoMessage">
      <p><?php echo $message;?></p>
    </div>
    <form action="<?php echo base_url(); ?>auth/login"  method="post" class="demo-form" data-parsley-validate="">
      <label>email or username</label>
      <input type="email" name="identity"  id="exampleInputEmail1" data-parsley-trigger="changes" required="">
      <label>password</label>
      <input type="password" name="password" data-parsley-length="[8, 16]" data-parsley-group="block2">
      <button type="submit" value="Login" class="btnSubmit validate">Login</button>
    </form>

  </div>
  <script type="text/javascript">
$(function () {
  $('.demo-form').parsley().on('form:validate', function (formInstance) {
    var ok = formInstance.isValid({group: 'block1', force: true}) || formInstance.isValid({group: 'block2', force: true});
    $('.invalid-form-error-message')
      .html(ok ? '' : 'You must correctly fill *at least one of these two blocks!')
      .toggleClass('filled', !ok);
    if (!ok)
      formInstance.validationResult = false;
  });
});
</script>
</body>
</html>

1 Ответ

2 голосов
/ 08 февраля 2020

Ниже приведен алгоритм реализации того, что вы задали вчера и сегодня, включая этот вопрос

Запуск алгоритма -

Когда пользователь заполняет идентификатор пользователя и пароль в форме входа в систему -

  1. Проверьте идентификатор пользователя && пароль оба верны .

     If both are correct then check `session_id == 0` in database
    
        If true then 
    
            set session_id = 1 in database and login that user.
    
        If false then 
    
            redirect back to home page or give him/her an alert message('you
            can't login now because your account is already logged in another
            browser').
    
            **Note :** You can also show the message as user's (which is already 
            loggedin) browser name, IP address, First loggedin time/date etc.
    
  2. Если оба (ИД пользователя и пароль) НЕ верны, то
    show the error message('userID or Password is not correct').

  3. Когда пользователь пытается чтобы выйти из системы, самое первое, что вы должны сделать, это ( важно )

      Set session_id = 0 in database.
    
      then logout that user.
    

Алгоритм заканчивается -

Что делает этот алгоритм?
Если вы уже вошли в браузер, то вы не сможете войти в систему снова в другом браузере, пока вы не выйдете из исходного браузера.

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