javascript — Почему переменная сессии выпуска обновления страницы php

Я пытаюсь освободить / сбросить переменную сеанса через 2 минуты unsetsession.php:

<?php

session_start();

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 120)) {
// last request was more than 2 minutes ago
unset($_SESSION['logged_in']);     // unset $_SESSION variable for the run-time
unset($_SESSION['LAST_ACTIVITY']);
session_unset();     // unset $_SESSION variable for the run-time
session_destroy();   // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp

?>

где переменные сеанса:

$_SESSION['logged_in'] = 1;
$_SESSION['LAST_ACTIVITY'] = time();

Однако переменные сеанса не сбрасываются, а сбрасываются при обновлении страницы. На странице выполняется вызов файла unsetsession.php. Почему сеанс не сбрасывается через 2 минуты?

EDIT: Страница file.php имеет <?php include("includes/unsetsession.php") ?> в верхней части страницы. когда file.php обновляется в браузере, значение переменной сеанса $_SESSION['logged_in'] = 1; меняется на 0. Это не изменится через 2 минуты. Изменяется только на 0 при обновлении страницы.

Я проверяю значение, запустив getsession.php в браузере, который:

<?php
session_start();
if(isset($_SESSION['logged_in']))
echo "1";
else
echo "0";
?>

0

Решение

Ну, у вас явно есть проблемы с пониманием того, как PHP работает.
Всякий раз, когда вам нагрузка ваша страница, ваш php скрипт будет выполнен один раз.

Итак, вы просматриваете свой код в первый раз, ваша переменная сеанса установлена.
И теперь, это над. Ваш php-скрипт выполнен, и он только что закончился, он больше ничего не будет делать.

Но если ты обновление ваша страница, скрипт будет вызван снова.
Тогда переменная сеанса уже установлена, и, скажем, прошло две минуты. Таким образом, вы входите в состояние и уничтожаете его. И ваш второй вызов сценария завершен.


Так что на самом деле нет способа найти решение вашей проблемы прямо сейчас, пока вы не дадите нам больше информации о том, чего вы пытаетесь достичь.

Некоторые решения будут использовать javascript для регулярного выполнения AJAX-запроса, например, для unsetsession.php, или просто оставить это как есть: сеанс не будет сброшен до тех пор, пока вы не загрузите страницу. Это не проблема, большинство веб-сайтов делают это таким образом.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]