Foros del Web » Programando para Internet » PHP »

Cerrar una Session al cambiar de direccion

Estas en el tema de Cerrar una Session al cambiar de direccion en el foro de PHP en Foros del Web. Gente, Como puedo hacer para que cuando alguna persona abandone un sitio en el cual esta logueado y mantiene una sesion activa, con solo el ...
  #1 (permalink)  
Antiguo 14/09/2004, 08:00
gcs
 
Fecha de Ingreso: enero-2004
Ubicación: Heredia, Costa Rica
Mensajes: 191
Antigüedad: 20 años, 3 meses
Puntos: 0
Cerrar una Session al cambiar de direccion

Gente,

Como puedo hacer para que cuando alguna persona abandone un sitio en el cual esta logueado y mantiene una sesion activa, con solo el hecho de irse (escribiendo una nueva dirección en el navegador) el sistema le cierre la session ??

Alguna idea ??? tendría que ser a punta de JAVASCRIPT ???
  #2 (permalink)  
Antiguo 15/09/2004, 19:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Si usas sesiones (www.php.net/session) .. propagas el SID en cookies y el tiempo de expiración de este lo ajustas a 0 (cero) .. La sesión (realmente la cookie que propaga el SID) será de tipo "sesión" (valga la rebundancia), es decir; al cerrar la última ventana de tu sitio (o cambiar de sitio).. el SID que vá propagado en la cookie se pierde (pese que en el servidor ese SID siga siendo válido por qué session.gc_maxlifetime todavía indique que el SID es válido).

Cuando session.gc_maxlifetime expire (cumpla su tiempo) tu sesión (el SID que lo asocia) ya no será válido y pasará al estado "garbage" (recolector de basura, listo en espera de ser borrado según define session.gc_probality ....). Todo esto es un proceso interno de PHP que ya lo hace el mismo por si sólo y el cual puedes configurar/ajustar vía php.ini con esas directivas (o incluso vía ini_set() en tiempo de ejecución). No es necesario que recurras a "javascript" y algún onUnload() -> llamar a tu script (redirecionar hacia ...) "logout.php" donde hagas el "session_destroy()".

Un saludo,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:46.