sql >> Base de Datos >  >> RDS >> Mysql

¿Puedo contar las sesiones para determinar el número de personas en línea?

Lógica totalmente equivocada. $_SESSION es una cosa por usuario. La sesión de un usuario no se comparte con la sesión de ningún otro usuario. Piénselo:un banco en línea escrito en PHP, todos compartiendo una sola $_SESSION:todos verían los detalles de la cuenta de todos.

Suponiendo que está en sesiones PHP estándar basadas en archivos, puede contar los archivos de sesión en cualquier directorio en el que estén almacenados, por ejemplo,

$users = count(glob(session_save_path() . '/*'));

Tenga en cuenta que esto solo cuenta los archivos de sesión; sin duda, contendrá sesiones obsoletas/muertas que aún no han sido recolectadas como basura. Si desea un "realmente está en línea en este momento", tendría que analizar cada archivo de sesión y examinar su contenido.