Ayuda con las sesiones en PHP

Forums: 

Hola gente!!!

Aquí les traigo una inquietud.

Tengo una aplicación web hecha en PHP y con acceso a PostgreSQL, me funciona bien y todo, pero estoy haciéndole mejoras.

Para todo el sistema utilizo las sesiones para almacenar datos tales como: usuario_cod, usuario_password, usuario_perfil, etc.

Una de las mejoras que quiero implementar es sobre el acceso al sistema.

Lo que quiero es saber si el usuario que está tratando de entrar al sistema, no está logeado desde otra máquina, navegador, etc.

Si el sistema detecta que hay una sesión activa con el mismo usuario_cod del que trata de entrar al sistema, negar el acceso e informar que alguien está conectado al sistema con ese usuario_cod, caso contrario, permitir el acceso.

Para lo cual en teoria ví que sería factible recorrer todas las session_id activas e ir chequeando en sus variables de sesión relacionadas si existe o no dicho usuario_cod, pero llevarlo a la práctica le veo un poco dificil, he consultado con mucha gente y no sabe cómo hacer un recorrido por todas las session_id activas, e incluso en la misma php.net no se habla del tema...

He estado meditando en otra solución que me dieron varias personas, la de crearme en mi base de datos una tabla de logins con banderas en positivo para permitir el acceso y en negativo para negarlo, y manejarme así:

El usuario xyz trata de entrar, la bandera de login está en positivo, el acceso se permite y se cambia la bandera a negativo; el usuario xyz termina su trabajo, manda a cerrar la sesión y automáticamente la bandera pasa de negativo a positivo para permitir futuros logins.

Pero esto le veo menos factible porque por ejemplo:

Qué pasa si el usuario no cierra su sesión y tan solo decide cerrar la ventana del explorador?

Qué pasa si el usuario intencionalmente abre una nueva ventana del explorador?

Si alguien sabe sobre este tema, por favor dénme una manito.

(SI ME EQUIVOCO CORRIJANME, SOY UN HUMANO EN VERSIÓN BETA)

Linux es Libertad!!