Creo que la solución de farra es la mas lógica. Fue lo primero que pensé cuando leí el post.
Si tiene esa desventaja, si uno cierra el navegador, o se le apaga la pc. Nunca mas se puede loguear alguien.
Puedes mejorar esa solucion:
Guardas 0 y 1, y ademas un fecha/hora.
Haces que cada 'x' minutos, el usuario que está logueado actualice esa fecha/hora automaticamente.
Luego, si uno se intenta loguear se fija:
Si está en 0, se loguea tranquilo.
Si el valor esta en 1:
Si la hora actual es < ultimoLogin + 'X' NO puede loguearse, porque hay uno logueado.
Si la hora actual es > ultimoLogin + 'X' Se puede loguear, porque quiere decir que un usuario se logueó, pero su browser no está activo, porque hubiese modificado la hora.
Tiene la desventaja, que cuando un usuario cierra el navegador, no puede loguearse otro por "x" tiempo.... suena coherente, capaz q estoy delirando