Как я могу автоматически выйти из сеанса пользователей, не нажимая сначала - PullRequest
0 голосов
/ 23 мая 2018

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

<?php

//TIMEOUT AFTER 20 MINUTES
if(isset($_SESSION['signed_in'])) {

$inactive = 1200;

if(isset($_SESSION['timeout']) ) {
$session_life = time() - $_SESSION['timeout'];
if($session_life > $inactive) { 
    $id = $_SESSION['user_id'];

    //this db row is solely to display # of users logged in
    mysqli_query($connect, "UPDATE users SET user_signedin='0' WHERE user_id = '$id'");
    session_destroy();
    $_SESSION = array();
    header("Location: timedout.php"); 
}
}
$_SESSION['timeout'] = time();
}
?>

Но я также попробовал javascript (установив таймер на 5 минут) примерно так:

<script>
var wintimeout;

function SetWinTimeout() {
wintimeout = window.setTimeout("window.location.href='timedout.php';",300000);
 }
 $('body').click(function() {

window.clearTimeout(wintimeout); //when user clicks remove timeout and reset it

SetWinTimeout();

});
 SetWinTimeout();
 </script>

Я искал несколькоразные места, чтобы узнать, как реализовать автоматическое перенаправление без необходимости нажимать или обновлять, но пока не повезло.Как люди перенаправляют автоматически (без нажатия или обновления) по истечении времени ожидания?

РЕДАКТИРОВАТЬ: Для людей, которые ищут тот же ответ: Хорошо, я смог получить желаемый эффект, добавивэто для заголовка моей страницы

<?php if(isset($_SESSION['signed_in'])) { ?>
<meta http-equiv="refresh" content="1800;url=internal.php" />
?>

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

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