CodeIgniter сохранит данные в таблице, которую вы указали в своем конфигурационном файле.По умолчанию это ci_session
.Информация о сеансе, например, доступная через $_SESSION
, сериализуется и сохраняется в столбце с именем user_data
.Это поле не сможет сообщить вам, истек ли сеанс (или, другими словами, сколько человек в сети).
Вместо этого вы можете использовать столбец last_activity
, которыйотметка времени последнего сеанса.Вы можете запустить SQL-запрос, который выбирает счетчик session_id
, где last_activity
меньше, чем 2 минуты назад.
SELECT COUNT(`session_id`) AS `active_user_count` FROM `ci_session` WHERE `last_activity` >= DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 2 MINUTE)
При этом существующий сеанс не обязательно означает, что пользователь"вошел в систему".Если вам нужно проверить, что они вошли в систему, вы можете использовать оператор LIKE
, чтобы добавить условие в оператор WHERE
, который проверяет, вошел ли пользователь в систему. Это будет зависеть от того, какое имя переменной вы используетепоэтому взгляните на свои данные и посмотрите, сможете ли вы их выяснить.
Например:
SELECT COUNT(`session_id`) AS `active_user_count` FROM `ci_session` WHERE `last_activity` >= DATE_SUB(CURRENT_TIMESTAMP, INTERVAL 2 MINUTE) AND `user_data` LIKE '%s:9:"logged_in";b:1;%'