Запуск PHP, даже если пользователь вышел из системы - PullRequest
0 голосов
/ 15 декабря 2018

У меня есть php-файл, который пользователь может войти и выйти.Я в настоящее время бегаю на этом.Я хочу показать число при входе пользователя в систему.

например, при входе пользователя в систему и перенаправлении на userpage.php, я хочу показать число, подобное 1,2,3, и все еще считать.Я уже создал этот.

Но проблема в том, что когда пользователь выходит из системы и пытается войти снова, номер не продолжается?снова стало 1,2,3.

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

спасибо

Ответы [ 2 ]

0 голосов
/ 15 декабря 2018

Обновление: , поскольку вы хотите, чтобы числа увеличивались в фоновом режиме независимо от входа / выхода, используйте cron jobs, см. , это для получения дополнительной информации


Вы должны использовать счетчик для каждого логина пользователя, который должен быть постоянным, поэтому сохраняйте этот счетчик в БД в зависимости от того, что вы используете для своего приложения.

Поток будет выглядеть так:

Проверка входа в систему> Вход в систему выполнен успешно> Получить текущий счетчик входа в систему из БД для этого конкретного пользователя> Увеличить на единицу> Сохранить его обратно в БД

Общая реализация в php будет выглядеть так (учитывая, что имя пользователя всегда уникально)

Примечание: приведенный ниже код не тестируется

    .
    .
    .
    $stmt = $con->prepare("SELECT user_id, username, password, login_count FROM users WHERE username=? AND password=? LIMIT 1");
    $stmt->bind_param('ss', $username, $password);
    $stmt->execute();
    $stmt->bind_result($user_id, $username, $password, $loginCount);
    $stmt->store_result();
    if($stmt->num_rows == 1)  //To check if the row exists
    {
        if($stmt->fetch()) //fetching the contents of the row
        {
               $_SESSION['Logged'] = 1;
               $_SESSION['user_id'] = $user_id;
               $_SESSION['username'] = $username;
               $loginCount = $loginCount+1; //increment login counter by 1 
                                            //this should be default as 0 when a new user register

               //Now save it back to DB using update query

               $Updatesql = "UPDATE Table SET loginCount=? WHERE username=?";
               $Updatestmt = $con->prepare($Updatesql);
               $Updatestmt->bind_param('ds', $loginCount,$username);
               $Updatestmt->execute();

               if ($Updatestmt->error) {
               //Update failed
                echo "FAILURE!!! " . $Updatestmt->error;
               }
               else echo "Updated {$Updatestmt->affected_rows} rows"; //Update succeeded
               $Updatestmt->close();

               exit();
       }

}
else {
    echo "INVALID USERNAME/PASSWORD Combination!";
}
$stmt->close();
0 голосов
/ 15 декабря 2018

Чтобы достичь этого результата, вы не можете попробовать записать время входа и выхода из системы, а также взять разницу между временем и отображать количество секунд, прошедших с момента первого входа в систему.

Шаг 1: Зарегистрируйте время первого входа исохраните его в базе данных.

Шаг 2: Зарегистрируйте время выхода из системы и сохраните его в базе данных.

Шаг 3: если вы хотите, чтобы прошло время для первого входа в систему и последнего выхода из системы, то рассчитайте разницу во временив секундахесли вы хотите указать время, прошедшее с момента последнего входа в систему, рассчитайте разницу во времени между последним входом в систему и текущим временем.

Шаг 4. Отображение времени, прошедшего на странице пользователя HTML.

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