09.01.2011, 12:47
|
Аспирант
|
|
Регистрация: 04.06.2009
Сообщений: 51
|
|
Вопрос про session.gc_maxlifetime
Подскажите, что значит опция конигурации session.gc_maxlifetime на сервере apache? Через сколько будет удален файл сессии, после последней отправки клиентом куки с номером сессии? Или через сколько она будет удалена, после создания, независимо от общения с клиентом?
|
|
09.01.2011, 12:58
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
Сообщение от prog90
|
session.gc_maxlifetime на сервере apache?
|
на apache нету такой опции
после последнего доступа к файлу сессии
|
|
09.01.2011, 13:43
|
Аспирант
|
|
Регистрация: 04.06.2009
Сообщений: 51
|
|
дада. интерпретатор php. оговорился
|
|
09.01.2011, 13:50
|
Аспирант
|
|
Регистрация: 04.06.2009
Сообщений: 51
|
|
А для кого эта опция выставляется? для всех и на все время? Например, если вызвать открыть сессию и вызвать ini_set, то для этой сессии опция изменится? или после окончания работы скрипта, опция опять восстановится?
Там где я пишу, она восстанавливается на 1440.
|
|
09.01.2011, 17:30
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
вы справку пробовали читать?
там же русским английским по-белому написано, что время задается для конкретного хранилища
|
|
09.01.2011, 21:21
|
|
|
|
Регистрация: 27.12.2008
Сообщений: 4,201
|
|
prog90, давай ты начнешь с того, что обозначишь проблему
|
|
09.01.2011, 22:24
|
Аспирант
|
|
Регистрация: 04.06.2009
Сообщений: 51
|
|
А то что это написано в файле php.ini - из этого не понять к кому и как это принимается.
; After this number of seconds, stored data will be seen as 'garbage' and
; cleaned up by the garbage collection process.
session.gc_maxlifetime = 1440
Получается что для всех.
И что значит хранилище?
А проблема в том, что мне надо, чтобы при закрытии окна браузера на сервере уничтожалась сессия. Через событие onunload отправить на сервер сигнал не вроде не получится, потому что оно не работает во всех браузерах полностью.
Но еще наверно можно установить время жизни сессии при отсутствии обращения к ней, например, в течение 7 секунд. В чате окно обновляется каждые несколько секунд. Поэтому если закроют браузер или вкладку, то перестанут обращаться к скрипту.
Может быть есть еще вариант как это сделать.
|
|
09.01.2011, 22:42
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
выставьте время жизни кукам в 0
при закрытии вкладки они будут удалены
|
|
09.01.2011, 23:07
|
Аспирант
|
|
Регистрация: 04.06.2009
Сообщений: 51
|
|
Проблема в том, что если браузер закрыт, и файл куки с сессией унитожен, а сессия на сервере остается, то когда тот же пользователь заходит заново, и ему выдается другая сессия, то получается, что в чате еще есть ктото с его логином и паролем. И ему приходится вывести ошибку - пользователь с таким логином уже в чате.
А если это не считать за ошибку, то тогда один пользователь сможет зайти два раза под своим логином. Или три. И например как мне кажется может поставить генератор, и зайти 1000 раз подряд, и испортить чат.
|
|
09.01.2011, 23:12
|
|
Матрос
|
|
Регистрация: 04.04.2008
Сообщений: 6,246
|
|
что за бред?
ты разве для того чтобы определить кто в чате "On-line", перебираешь все файлы сессий, что ли?
нормальные люди on-line определяют так:
где-нибудь указывается список чатлан, и время последней активности.
те, которые были неактивны долго, либо нажали кнопку выхода, считаются неактивными.
сессии тут абсолютно не при чем.
если пользователь зайдет второй раз в чат, ему выдастся новая сессия, с информацией для него лично.
старая такая информация для него уже потеряна, если не сохранена в БД
со временем, старая сессия будет удалена сборщиком мусора
|
|
|
|