JackShcherbakov
@JackShcherbakov

Почему не получается установить session.gc_maxlifetime?

Здравствуйте!
Вот чать конфигурации:
session.auto_start = 1
session.gc_probability = 100
session.gc_divisor = 1
session.gc_maxlifetime = 100

То есть сессии должны отчищаться с частотой 1 секунда со 100%-й вероятностью
Вот код:
<?php 
//ini_set("session.gc_probability", '100');
//ini_set("session.gc_maxlifetime", '2');
//session_start();

if(isset($_SESSION["count"])){
	$_SESSION["count"]++;
}else{
	$_SESSION["count"] = 1;
}
print $_SESSION["count"] . "<br>";
print $_COOKIE["PHPSESSID"];
?>

Я обновляю страницу каждые 5 секунд (сессия в это время должна отчиститься), и почему то сессия до сих пор жива! Ведь прошло аж 5 секунд! И счетчие почему то инкрементируется! Что я делаю не так?
У меня получается, что сессия умирает только если закрыть браузер.
Заранее спасибо.
  • Вопрос задан
  • 887 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Если к сессии ещё обращаются - значит кому-то она ещё нужна. Раз она кому-то нужна - почему её надо удалять?
https://github.com/php/php-src/blob/PHP-7.2.2/ext/...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
opium
@opium
Просто люблю качественно работать
Сборщик мусора то вы как запускаете? Никак, и думаете что он магически будет чистить сессии за вас раз в секунду?
Ваша опция лишь говорит что если сессия старше то надо ее очистить, а когда там будет проходится сборщик мусора вы никак не задаете, может он завтра будет чистить.
Напишите программу которая просто раз в секунду чистит сессии руками
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы