Найч
Алгоритмик :-)
Сессии. Занятное поведение php или браузера
Здравствуйте!
Опишу обстановку.
Простейшая авторизация на сессиях
Используется в системе под интранет. Время жизни сессии - 6 часов
После некотрого времени (всегда разное из того, что удалось выловить) в _редких_ случаях сессия теряется. Что это значит. Человек, работающий с системой, бездействует некоторое время. Например, пару часов. После этого он жмет на какую-то кнопочку и продолжает работать. Но два-три раза на день (суммарно на 20 используемых машинах) случается ситуация, когда пхп-ная проверка отправляет его на формочку с логином. Отправляет не иначе как по теории вероятности...
Браузер не закрывался, параллельно не запускались другие экземпляры. Из-за сложности воспроизводства глюка выяснить причину стандартной отладкой не удается.
Первоначально грешил на системного сборщика мусора, так как было
Изменение на другой путь результата не дало.
Есть предположение, что дело может быть:
- во внутренностях пхп (какое-либо ограничение на жизнь сессии или что-то еще) - его сборщик мусора
- в браузере (маловероятно, замечено под мозиллой, m firefox юниксовыми и виндовыми) - по каким-то причинам отказывается слать куки (куки у всех включены)
Проводились попытки выловить этот глюк. Под разными браузерами и ОС оставлял открытым окошко и спустя несколько часов проверял сессию. Ноль реакции, фунт презрения. Сессия была жива.
Перечитал внимательно факи по сессиям. Мысли закончились.
Кто-нибудь может предложить способ лечения/обнаружения условий глюка?
Или, возможно, кто-то уже сталкивался с подобным?
php 4.3.9
Linux Alt Master 2.4
Здравствуйте!
Опишу обстановку.
Простейшая авторизация на сессиях
PHP:
session_start();
if (empty($_SESSION['UserID'])){
header('location: /login.php');
exit();
}
PHP:
session.gc_maxlifetime = 21600
Браузер не закрывался, параллельно не запускались другие экземпляры. Из-за сложности воспроизводства глюка выяснить причину стандартной отладкой не удается.
Первоначально грешил на системного сборщика мусора, так как было
PHP:
session.save_path = /tmp
Есть предположение, что дело может быть:
- во внутренностях пхп (какое-либо ограничение на жизнь сессии или что-то еще) - его сборщик мусора
- в браузере (маловероятно, замечено под мозиллой, m firefox юниксовыми и виндовыми) - по каким-то причинам отказывается слать куки (куки у всех включены)
Проводились попытки выловить этот глюк. Под разными браузерами и ОС оставлял открытым окошко и спустя несколько часов проверял сессию. Ноль реакции, фунт презрения. Сессия была жива.
Перечитал внимательно факи по сессиям. Мысли закончились.
Кто-нибудь может предложить способ лечения/обнаружения условий глюка?
Или, возможно, кто-то уже сталкивался с подобным?
php 4.3.9
Linux Alt Master 2.4