Вопрос про session.gc_maxlifetime
Подскажите, что значит опция конигурации session.gc_maxlifetime на сервере apache? Через сколько будет удален файл сессии, после последней отправки клиентом куки с номером сессии? Или через сколько она будет удалена, после создания, независимо от общения с клиентом?
|
Цитата:
после последнего доступа к файлу сессии |
дада. интерпретатор php. оговорился
|
А для кого эта опция выставляется? для всех и на все время? Например, если вызвать открыть сессию и вызвать ini_set, то для этой сессии опция изменится? или после окончания работы скрипта, опция опять восстановится?
Там где я пишу, она восстанавливается на 1440. |
вы справку пробовали читать?
там же |
prog90, давай ты начнешь с того, что обозначишь проблему ;)
|
А то что это написано в файле 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 секунд. В чате окно обновляется каждые несколько секунд. Поэтому если закроют браузер или вкладку, то перестанут обращаться к скрипту. Может быть есть еще вариант как это сделать. |
выставьте время жизни кукам в 0
при закрытии вкладки они будут удалены |
Проблема в том, что если браузер закрыт, и файл куки с сессией унитожен, а сессия на сервере остается, то когда тот же пользователь заходит заново, и ему выдается другая сессия, то получается, что в чате еще есть ктото с его логином и паролем. И ему приходится вывести ошибку - пользователь с таким логином уже в чате.
А если это не считать за ошибку, то тогда один пользователь сможет зайти два раза под своим логином. Или три. И например как мне кажется может поставить генератор, и зайти 1000 раз подряд, и испортить чат. |
что за бред?
ты разве для того чтобы определить кто в чате "On-line", перебираешь все файлы сессий, что ли? нормальные люди on-line определяют так: где-нибудь указывается список чатлан, и время последней активности. те, которые были неактивны долго, либо нажали кнопку выхода, считаются неактивными. сессии тут абсолютно не при чем. если пользователь зайдет второй раз в чат, ему выдастся новая сессия, с информацией для него лично. старая такая информация для него уже потеряна, если не сохранена в БД со временем, старая сессия будет удалена сборщиком мусора |
Часовой пояс GMT +3, время: 15:15. |