Доступ к активным сеансам в PHP

Как я могу получить список всех активных сеансов PHP на сервере и получить к ним доступ из одного экземпляра пользователя?

Мотивирующий случай отображает список всех активных в настоящее время пользователей на сайте, где имена пользователей хранятся в сессии PHP каждого пользователя.

Примечание. Я знаю, что могу создать собственное состояние через базу данных (или даже файловую систему), но я ищу способ использовать встроенные механизмы сеанса PHP.

Увидев ответы, хотя это возможно, это не значит, что вы должны это делать. Формат, в котором хранятся сеансы, не документирован и может меняться в любое время (даже между младшими версиями).

Правильный способ сделать это – реализовать собственный обработчик сеанса . На самом деле это не так сложно.

Список сеансов

<?php print_r(scandir(session_save_path())); ?> 

Проверить конкретную сессию

 <?php session_start(); echo (file_exists(session_save_path().'/sess_'.session_id()) ? 1 : 0); ?> 

Последний файл сеанса сеанса

 <?php session_start(); echo filectime(session_save_path().'/sess_'.session_id()); ?> 

Как уже было сделано к смерти, уже не рекомендуется обрабатывать сеансы таким образом, но если это необходимо, они будут работать без необходимости проверять / изменять путь хранения сеанса (полезно, если вы переключитесь на другой сервер с другая конфигурация).

Вы не можете использовать сеансы для этого, вам нужно будет хранить онлайн-пользователей в БД и просто устанавливать временную метку или аналогичную информацию, отображать всех активных пользователей за 5 минут, а также удалять их записи.

Сеансы хранятся в виде файлов в вашем временном каталоге сеанса. Вы должны найти это в php.ini (или с помощью phpinfo() ). Это все сеансы. Вы должны проверить время файла, чтобы узнать, активны ли они за последние x минут.