Ver Mensaje Individual
  #4 (permalink)  
Antiguo 26/05/2005, 09:09
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
En lugar de usar un "flag" como lo haces ahora para determinar su estado activo o inactivo .. debes usar fechas (con hora) para registrar:

1) Cuando ingresa el usuario al sistema (hace su login)
2) Cuando mueve una página/script de tu sitio .. Ahí actualizas ese campo de fecha a cada petición de una página de tu sitio/script.

De esa forma .. ya que PHP funciona bajo "petición" .. es decir, tu le pides y el te devuelve lo que resulte de su ejecución .. hasta que no "pides" (redireccionas, linkeas .. etc) un script de tu aplicación .. PHP "no sabe" si el usuario sigue ahí o bien cerró su navegador .. o apagó su PC ...

Bajo este concepto .. tienes un "problema" o "margen de error" que debes considerar. Se trata del "tiempo de inactividad" (por llamarlo así) que determinarás tu si entre la última iteracción con tu sistema y ahora (cuando tengas que ver la disponibiliad de ese usaurio) ha trasncurrido N tiempo .. consideraras como que salió del sistema (y no por la "puerta").

Para "ajustar" mejor ese margen de error .. puedes hacer algunas cosas:
1) Recargar algún frame (oculto) o petición vía "Remote Scripting" o "Ajax" de un script tuyo que actualice esa fecha de "sigo aquí conectado".
2) en función del intervalo de peticiones/recarga de ese script de actualización de dicha fecha .. podrás reducir el margen de error (el N tiempo que consideras como "ya no está en el sistema ..)

Parte de toda esta teoría la tienes implementada en los scripts denominados "usuarios activos" que veras en el foro ejemplos ..

Un saludo,