Сессия PHP не заканчивается - PullRequest
       1

Сессия PHP не заканчивается

0 голосов
/ 24 февраля 2012

Кажется, я не могу закончить сеанс. см. ниже очень простой код. Кнопка «Пуск» запускает сеанс, а ниже выводит идентификатор и время до истечения времени ожидания. Я установил его на 5 секунд, который он отображает, но если вы подождете более 5 секунд и обновите его, все равно будут показаны идентификатор и 5 секунд. Я что-то здесь упускаю?

<?php

echo <<<_END

<form method="post" action="">
<input type="hidden" name="start" value="yes"/>
<input type="submit" value="Start session"/>
</form>
_END;

if (isset($_POST['start']))
{
session_start();
ini_set('session.gc_maxlifetime', 5);
ini_set('gc_probability', 100);
ini_set('gc_divisor', 100);
}

echo session_id();
echo "<br>";
echo ini_get('session.gc_maxlifetime');

?>

Ответы [ 3 ]

1 голос
/ 24 февраля 2012

С документация php :

To use cookie-based sessions, session_start() must be called before outputing anything to the browser..

0 голосов
/ 24 февраля 2012

ini_set просто изменить настройку для текущей страницы.Попробуйте поместить код ниже if в верхней части страницы, и вам нужно будет звонить session_start каждый раз, когда вы имеете дело с сеансом.

<?php

ini_set('session.gc_maxlifetime', 5);
ini_set('gc_probability', 100);
ini_set('gc_divisor', 100);
session_start();

echo <<<_END
<form method="post" action="">
<input type="hidden" name="start" value="yes"/>
<input type="submit" value="Start session"/>
</form>
_END;

if (isset($_POST['start']))
{
    $_SESSION['test'] = 'I should disappear on next request after 5 seconds';
}

echo $_SESSION['test'];

?>
0 голосов
/ 24 февраля 2012

по умолчанию в хранилище данных PHP Session в каталоге tmp может быть так мало времени для физического удаления временных данных сеанса.Попробуйте увеличить время жизни сессии.

(по умолчанию сессия удаляется cron. Может ли она выполнить операцию удаления?)

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