Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/11/2004, 10:46
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Asi se ve mejor entendible, pero amigo como ves sera posible que detecte cuando es un refresh y otro el cierre aparentemente el cierre de la ventana puede ser esto no??
El tema del control de expiración de una sesión no deberías dejarlo en manos de "javascript" ... Que yo sepa no hay control sobre si estás recargando la página o es una petición directa.


PHP y sus sesiones ya gestionan los tiempos de expiración vía directivas:
session.gc_maxtimelife

Y todo depende de como propagues el SID (si por cookies o por el URL; manualmente o automáticamente) .. pero al final del todo la directiva que "manda" es la que indico.

PHP al pasar ese tiempo ya "mata" la sesión (la pasa al estado "garbage": basura) listo para ser borrado por otro proceso que hace PHP referente y controlado por la directiva:
session.gc_probality
que, indica el n° de veces (en porcentaje) que se ha de usar (o llamar) a session_start() para que actue dicho proceso y borre físicamente del servidor las sesiones que ya no son válidas (el SID de estas) pero sigue ahí (en el servidor) el archivo que PHP crea (por defecto .. si no cambias el "handler")

Si quieres implementar sistemas de "cuando salió" el usuario del sistema (de tu aplicación) lo que se suele hacer es "confiar" en tiempos de expiración .. así que la fecha que salió tu usuario será un máximo de lo que marque session.gc_maxtimelife + la última iteracción con el servidor y el último registro de esa interacción con el servidor .. es decir, se actualiza esta fecha de "en el sistema" a cada petición de una página de tu aplicación (incluido recargas y demás ). Este es el principio básico del que se basa los contadores de "usuarios activos" que veras en muchos sitios (incluidos las FAQ's de este foro PHP).

Un saludo,