Foros del Web » Programando para Internet » PHP »

cerrar session??

Estas en el tema de cerrar session?? en el foro de PHP en Foros del Web. como saber si la session_start() creada fue destruida, y tambien cuando se cierre la pagina, es decir, cuando se cierra el internet explorer.? bueno hago ...
  #1 (permalink)  
Antiguo 11/12/2003, 21:52
 
Fecha de Ingreso: abril-2003
Ubicación: 127.0.0.1
Mensajes: 359
Antigüedad: 14 años, 8 meses
Puntos: 0
Pregunta cerrar session??

como saber si la session_start() creada fue destruida, y tambien cuando se cierre la pagina, es decir, cuando se cierra el internet explorer.?

bueno hago esta pregunta por el motivo ke estoy creando un archivo log, es decir ke tambien kiero registrar la hora ke el usuario se fue de mi sitio eso
__________________
Practicando se Aprede
:-) :-)

Última edición por necu; 11/12/2003 a las 23:47
  #2 (permalink)  
Antiguo 11/12/2003, 23:53
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Cuando el usuario cierra la ventana se produce el evento unload (creo)...
Si quieres tener mayor seguridad, puedes manejar este evento... cuando se produzca, ejecutas el script de logout, y registras la hora... o lo que quieras... creo que es una forma sencilla de hacerlo...

Saludos
  #3 (permalink)  
Antiguo 12/12/2003, 00:01
 
Fecha de Ingreso: abril-2003
Ubicación: 127.0.0.1
Mensajes: 359
Antigüedad: 14 años, 8 meses
Puntos: 0
si te entiendo, pero como yo trabajo con $_SESSION_START() , al momento si el usuario no hace logout manualmente y cierra el explorador de internet igual se destruye la sesssion, pero como registro eso en mi archivo LOG, si el usuario no salio de mi pagina manualmente y no con cerrar la ventana del explorador??
__________________
Practicando se Aprede
:-) :-)
  #4 (permalink)  
Antiguo 12/12/2003, 00:28
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Pues por eso te digo... el evento Unload lo manejas con JavaScript... no recuerdo bien cómo funciona... pero es algo así:

Debes incluir una funcion de javaScript en la etiqueta body para que se ejecute al cerrar la ventana...

Prueba esto en una página:

<body onUnload="alert('esto se activa al cerrar la ventana')">

Ahora, al cerrar la ventana se ejecutará la función.

En lugar de la funcion alert que te puse, pones alguna que ejecute el logout y registre la hora...

De todos modos debes preguntar esto en el foro de JavaScript para que lo entiendas mejor...

Saludos
  #5 (permalink)  
Antiguo 12/12/2003, 06:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo en lugar de confiar en el navegador y su Javascript para lanzar el evento onUnload() ( que deberías preguntar en el foro Javascirpt si quieres saber como usarlo para llamar "abrir" una página ante dicho evento) .. yo configuraría PHP para tal fin en su apartado sesiones:

php.ini (se puede hacer con ini_set() y otras funciones de sesiones):

session.gc_maxlifetime =0
session.cache_expire = 0

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #6 (permalink)  
Antiguo 12/12/2003, 06:59
Avatar de jpinedo
Colaborador
 
Fecha de Ingreso: septiembre-2003
Ubicación: Lima, Perú
Mensajes: 3.120
Antigüedad: 14 años, 2 meses
Puntos: 41
Bueno Cluster, yo estoy de acuerdo contigo... pero necu quiere registrar la hora en que su usuario abandona la sesión...
Si se ejecuta el logout, no hay problema, porque el script incluye el registro de la hora...
El problema de necu es si la sesión se destruye sola (si se cierra el navegador), pues no podrá registrar la hora... por eso se me ocurre hacerlo con el unload...

Saludos
  #7 (permalink)  
Antiguo 12/12/2003, 07:13
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Ok, jpinedo .. Si es así lo que quiere hacer .. OK. Ahora que revise en los foros adecuados la compatibilidad de dicho evento entre diferentes navegadores y .. bueno .. hoy por hoy todo el mundo tiene activado javascript así que no creo que tenga problemas.

Aun así .. para esos casos lo que suelo hace es definir tiempos de expiración para la sesión gestionado con algún campo de mi BD y actualizado según interactue con el servidor (a cada llamada de una página .. actualizo dato) .. El problema principal de estos métodos es el margen de error igual o menor que el tiempo que definas como tiempo de expiración (usuario inactivo).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #8 (permalink)  
Antiguo 12/12/2003, 07:18
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

Cuando el usuario cierra el navegador no destruye la sesion. Como mucho destruira la cookie de "sesion" por la que se propaga el ID de la sesion. Pero creo que la sesion sigue "activa" (existe el fichero y todavia no ha "expirado"), a la espera del recolector de basura (Garbage Collector, o GC para los amigos).

De todas formas, si quieres controlar cuando se elimina el fichero de la sesion, podrias hacerlo reescribiendo el "manejador" (handler) de las sesiones, tal como explica en http://www.php.net/manual/en/functio...ve-handler.php . Nunca lo he usado, pero por la descripcion es que sustituyes las funciones internas de PHP para gestionar las sesiones por unas propias tuyas hechas en PHP.

Suerte.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
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 03:53.