Foros del Web » Programando para Internet » PHP »

Cerrar todas las sesiones

Estas en el tema de Cerrar todas las sesiones en el foro de PHP en Foros del Web. Amigos Como podría llamar a un php que termina la sesion al cerrar la ventana del navegador, sin evitar que el navegador bloquee el evento ...
  #1 (permalink)  
Antiguo 29/11/2006, 15:26
 
Fecha de Ingreso: enero-2003
Mensajes: 516
Antigüedad: 21 años, 3 meses
Puntos: 0
Pregunta Cerrar todas las sesiones

Amigos
Como podría llamar a un php que termina la sesion al cerrar la ventana del navegador, sin evitar que el navegador bloquee el evento que le ponga a la pagina en cuestion.

Gracias
  #2 (permalink)  
Antiguo 29/11/2006, 16:06
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Pues es muy dificil detectar, la forma mas facil es usar el evento onUnload del body para que llame a una funcion javascript que cierre la sesion.
  #3 (permalink)  
Antiguo 29/11/2006, 16:08
 
Fecha de Ingreso: enero-2003
Mensajes: 516
Antigüedad: 21 años, 3 meses
Puntos: 0
Hola, amigo
Ya he suado el evtno para q llame a la pagina termina.php
Sin embargo algunos antispias ocosas asi logram impedir q llame a la pagina, eso es lo malo.

Graacias
  #4 (permalink)  
Antiguo 29/11/2006, 16:58
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Exclamación modificar tu php.ini

hola asegoviaz.

Pues para cerrar todas las sesiones al cerrar tu navegdor por medio de php, te tocarìa modificar tu php.ini si tienes acceso.

Donde dice: use_only_cookies lo activas, por defecto esta en 0.

OJO: sòlo te sirve si propagas tu sid por cookies!!!!

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #5 (permalink)  
Antiguo 29/11/2006, 17:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sería con la combinación:

Propagar el SID en cookies:
session.use_trans_sid = o
session.use_only_cookies = 1
session.use_cookies = 1

Y ajustando el tiempo de vida de la cookie que PHP creará para propagar el SID y el tiempo de vida:

session.session_cookie_lifetime = ...

También se puede ajustar por función:
session_cookie_paramts()

más info:
www.php.net/session

Esto lo único que hará es que pierdas el SID (la relación o referencia del cliente con los datos de la sesión en el servidor) .. pero la sesión realmente no se eliminará, estará viva hasta que session.gc_maxtimelife defina. Es decir .. podría retomar la sesión si creo una cookie con el mismo SID que tenía antes ... Por eso para complicarlo un poco más .. por lo menos se fuerza a propagar el SID por cookies, por qué si lo dejas por el URL ya lo dejas extremadamente simple retomar una sesión que todavía esté activa pese que el SID que propagases en cookies ya no la tuvieras en el cliente (navegador). Este tipo de cookies con valor "0" de tiempo de vida les llaman cookies de "sesión" por si quieres ver más infor al respecto.

Lo "malo" de este método es que sigues sin tener control por parte de tu aplicación cuando "cerró" el cliente el navegador como para matar tu mismo la sesión y ejecutar otros procesos que hagas al matar tus sesiones (log´s con fecha/hora de salida de tu sistema .. etc).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
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:50.