Спустя 49 минут, 44 секунды (26.02.2009 - 11:35) olgatcpip написал(а):
Где?
Спустя 33 минуты, 54 секунды (26.02.2009 - 12:09) FatCat написал(а):
На этом форуме просто:
Сначала проверяется, разрешены ли куки.
Если куки разрешены, идентификатор сессии пишется в куки.
Если куки запрещены, пишется во все внутренние линки.
Сессии пишутся в БД: идентификатор, айпишник, время (плюс еще куча параметров для других целей).
Сессия, в которой не было активности 15 минут (время может быть изменено), удаляется из БД
При каждом открытии страницы проверяется наличие идентификатора сессии в куках или запросе.
Если нет идентификатора сессии, проверяется, нет ли сессии для этого айпишника. Если есть гостевая сессия на этот айпишник, новая сессия не создается; если сессии нет или есть мемберская - создается новая гостевая сессия.
Таким образом, несколько мемберов могут быть одновременно с одного айпишника, но несколько гостей - нет.
У поисковых ботов всё то же, что у гостей, плюс проверка по документ-реферер.
Список "кто в онлайне" - это по сути список текущих сессий в БД.
Сначала проверяется, разрешены ли куки.
Если куки разрешены, идентификатор сессии пишется в куки.
Если куки запрещены, пишется во все внутренние линки.
Сессии пишутся в БД: идентификатор, айпишник, время (плюс еще куча параметров для других целей).
Сессия, в которой не было активности 15 минут (время может быть изменено), удаляется из БД
При каждом открытии страницы проверяется наличие идентификатора сессии в куках или запросе.
Если нет идентификатора сессии, проверяется, нет ли сессии для этого айпишника. Если есть гостевая сессия на этот айпишник, новая сессия не создается; если сессии нет или есть мемберская - создается новая гостевая сессия.
Таким образом, несколько мемберов могут быть одновременно с одного айпишника, но несколько гостей - нет.
У поисковых ботов всё то же, что у гостей, плюс проверка по документ-реферер.
Список "кто в онлайне" - это по сути список текущих сессий в БД.
Спустя 5 месяцев, 23 дня, 2 часа, 47 минут, 53 секунды (19.08.2009 - 13:57) Michael написал(а):
Цитата |
Сессия, в которой не было активности 15 минут (время может быть изменено), удаляется из БД |
А таким удалением занимается внешняя запущенная программа, или каждый раз по запросу клиентов проверка или в MySQL можно по расписанию вызывать подпрограммы?
Спустя 12 часов, 34 минуты, 20 секунд (20.08.2009 - 02:31) Gram написал(а):
Удалением сессий занимается сервер. Если у вас есть проблемы с временем жизни - самый простой способ это обратиться к хостеру. Он все сделает.
Спустя 10 часов, 42 минуты, 34 секунды (20.08.2009 - 13:14) FatCat написал(а):
Цитата (Gram @ 20.08.2009 - 03:31) |
Удалением сессий занимается сервер. |
У на свои сессии: создаются средствами пхп, пишутся в таблицу сессий в БД.
Цитата (Michael @ 19.08.2009 - 14:57) |
удалением занимается внешняя запущенная программа, или каждый раз по запросу клиентов проверка или в MySQL можно по расписанию вызывать подпрограммы? |
При каждой авторизации/деавторизации любого пользователя, включая авторизацию по кукам, выполняется запрос, что-то типа:
PHP |
$query = "DELETE FROM sessions WHERE last_activity<".(time()-900); |