Доступ к активным сессиям в PHP - PullRequest
13 голосов
/ 06 августа 2010

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

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

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

Ответы [ 4 ]

8 голосов
/ 06 августа 2010

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

правильный способ сделать это - реализовать свой собственный обработчик сеанса .Это не так сложно, правда.

7 голосов
/ 21 февраля 2013

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

<?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());
?>

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

1 голос
/ 19 октября 2011

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

1 голос
/ 06 августа 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...