Как управлять сессиями пользователей на сервере?

Статус
В этой теме нельзя размещать новые ответы.

verfaa

Профессор
Регистрация
29 Янв 2007
Сообщения
416
Реакции
49
На сайте регистрируются пользователи, заходят в пользовательскую часть сайта используя логин-пароль. В БД MySQL sessions пишутся активные сессии этих пользователей, чтобы подсчитывать сколько пользователей сейчас онлайн и других подобных целей. Как получить доступ и управлять пользовательскими сессиями в PHP 5.6 ? Вот например я хочу получить доступ к данным сессии 7dkb0qepg9v84dg9nm5gn0c4t0, id которой хранится в моей таблице как это сделать? И как держать актуальными данные в таблице sessions, чтобы она содержала только сессии пользователей, которые в данный момент на сайте? Может перебирать все сессии в цикле foreach, а в сессию каждому пользователю писать

Код:
$_SESSION['last_access'] = time();

И затем

Код:
foreach ($sessions_from_mysql_table as $session){ if( (time() - $_SESSION['last_access']) > 120 ) // Delete session from mysql tbl }

Как лучше сделать, подскажите. Сайт достаточно большой, пользователей > 160к, поэтому хотелось бы чтобы код давал оптимальную нагрузку на сервер.
 
Просто так сессии в БД не попадут, у тебя уже есть php код который их туда пихает... Если это приличная либа, то нужный функционал скорее всего уже есть.
Если самопис, то юзай Для просмотра ссылки Войди или Зарегистрируйся
Полагаю, что навесить обновление last_access можно на write или close
А чистка происходит по правилам колбека gc
Цикл foreach с перебором всей таблицы - это перебор... Лучше всего такое mysql запросом решать.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху