Как увеличить время жизни сессии.

[phpbb]

Guest
Как увеличить время жизни сессии.

Вопрос простой. Думаю ответить будет тоже не сложно. :)
 

Demiurg

Guest
В php.ini:
session.cookie_lifetime specifies the lifetime of the cookie in seconds which is sent to the browser. The value 0 means "until the browser is closed." Defaults to 0.

ps ну и ник ты себе выбрал :)
 

RomikChef

Guest
Ответ неправильный.
правильный ответ - session.gc_maxlifetime

пхпбб, я надеюсь, ты не собираешься делать
это время больше, чем средний юзер тратит на твоем сайте на просмотр одной страницы.
 

[phpbb]

Guest
Всё правильно session.gc_maxlifetime это я тоже находил на php.net, а вот как правильно указать это он всё время выдаёт мне ошибки, и время жизни я хочу увеличить до 3 часов. Тоесть я задам так?
<?php
session_start();
session.gc_maxlifetime = 10800; // - 3 hour
?>

правильно?
 

[phpbb]

Guest
не не :) про php.ini можно забыть, у меня ведь нет к нему доступа :)
 

[phpbb]

Guest
там можно так сделать но я не совсем понел там есть функция gc(); в неё надо запихать этот параметр, а вот как
 

Demiurg

Guest
putenv добавляет строку в окружение сервера а не в настройки php.
 

[phpbb]

Guest
а такое не поможет? создать .htaccess и в нём написать
php_value session.gc_maxlifetime = xxx?
 

Larson

Новичок
Посмотрел в таблице в мане, если я все правильно понял, то можно.
 

Demiurg

Guest
На сколько я понимаю механизм убивания сессий: Сравнивается время создания файла сессии и натоящее время, если разница больше времени жизни прописанной в php.ini, сессия убивается. Если это так, то единственный способ - изменить время жизни в php.ini.
 

[phpbb]

Guest
если быть точнее то использутся время последнего обращения к файлу, а не его создания :) я сейчас поробую свою идею, если через 1440 секунды сессия будет всё ещё доступна, значит я был прав
 

RomikChef

Guest
А Ларсона кто-нибудь послушает?
Это сработает в любом случае
ini_set("session.gc_maxlifetime",10800) ;
session_start();

Именно в ТАКОМ порядке.
 

Demiurg

Guest
На самом деле, это не есть полностью правильное решение.
Механизм работы сессий примерно таков: сессии храняться в темповой директории. При старте сессии (session_start) по иднтификатору сессии находится нужный файл и устанавливаются переменные сессии. При этом может запуститься, а может не запуститься (в зависимости от значения session.gc_probability) 'сборщик мусора'. Если он запускается, то он убивает все сессии, доступа к котоым не было в течении session.gc_maxlifetime секунд.
Тоесть, если сборщик мусора запуститься из какого либо другова скрипта, где не ini_set, твоя сессия умрет.
Самое интерересное, и не очень понятное для мня - это то, то сначала инициализируется сессия, и только потом запускается сборщик.
 
Сверху