Foros del Web » Programando para Internet » PHP »

Ejecutar Script al cerrar ventana

Estas en el tema de Ejecutar Script al cerrar ventana en el foro de PHP en Foros del Web. Cordial saludo. tengo una aplicacion que maneja dos marcos en el el izquierdo esta el menu y el derecho el contenido. como el usuario debe ...
  #1 (permalink)  
Antiguo 27/06/2007, 11:01
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Ejecutar Script al cerrar ventana

Cordial saludo.

tengo una aplicacion que maneja dos marcos en el el izquierdo esta el menu y el derecho el contenido.

como el usuario debe logearse para tener acceso a las opciones, guardo en una tabla algunos datos de logeo; adicional tengo una opcion en el menu que es "cerrar session", que elimina de la tabla ese registro....

El problema es que si le dan click en el boton cerrar del explorador va a quedar abierta la session.

Hay alguna forma que se ejecute cuando el usuario le de click en el boton cerrar????

Agradezco la ayuda y sugerencias que me puedan brindar.....
  #2 (permalink)  
Antiguo 27/06/2007, 11:28
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 1 mes
Puntos: 36
Re: Ejecutar Script al cerrar ventana

No sé si es correcto, pero creo que podrías hacer esto:
Código PHP:
<?php
function cerrar(){
//aqui pones tu codigo
}?>
<body onUnload="<?php cerrar() ?>">
Y en cerrar() pones lo que tienes que hacer. Saludos
  #3 (permalink)  
Antiguo 27/06/2007, 11:33
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Ejecutar Script al cerrar ventana

Pues siento decirlo tattojk pero eso no es correcto, los eventos no pueden ejecutar funciones php, al menos, que sea por medio de AJAX, pero esque, la forma en el que detectas los usuarios, no es correcta, no se debe de hacer asi, ya que surge ese problema, normalmente, se guarda en una tabla, y se guarda la fecha y hora segundo minuto, y, por ejemplo, se hace, que si han pasado 5 minutos de su inactividad, se elimina el registro, osea, que cada vez que el usuario navega, la hora que has guardado en la bd, se tiene que actualizar a la actual, y poner un condicional, que si la hora que hay en la bd, mas 5 minutos, es mayor a la hora actual, se elimine el registro, a si, el siguiente user que entre, sin saberlo, en la pag, comprobara la hora, de todos los users de la bd, y si son menores que la hora actual, se eliminaran antes de ser mostrados por nada, y es como si ya no estubieran conectados, te pasaria una pequeña funcion que tengo, pero no estoy ahora mismo en mi pc, si al estar en mi pc me acuerdo, te la paso, si sigues teniendo dudas claro.

Un saludo
  #4 (permalink)  
Antiguo 27/06/2007, 16:06
 
Fecha de Ingreso: febrero-2005
Mensajes: 673
Antigüedad: 19 años, 2 meses
Puntos: 2
Re: Ejecutar Script al cerrar ventana

Saludos Francisco01.

Te agradeceria si me mostraras el codigo a ver si puedo hacer algo con eso....

Gracias
  #5 (permalink)  
Antiguo 27/06/2007, 16:12
 
Fecha de Ingreso: marzo-2007
Mensajes: 347
Antigüedad: 17 años, 1 mes
Puntos: 2
Re: Ejecutar Script al cerrar ventana

Pero antes, explicame que es lo que quieres hacer realmente, por que entendi que era para ver los usuarios conectados, pero, explicame, si quieres mostrarlos en pantalla, o que quieres hacer con la lista de usuarios conectados, y te modifico la funcion que tengo a tu gusto xD.

Un saludo
  #6 (permalink)  
Antiguo 27/06/2007, 16:30
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
Re: Ejecutar Script al cerrar ventana

Desafortunadamente no puedes ejecutar un script al cerrar la pagina ya que el explorador cierra las comunicaciones, lo que puedes hacer y es lo recomendado es darle un tiempo de caducidad a tu script, luego tener una tarea periódica (Cron Job) que cheque si una session tiene determinado tiempo inactiva lo saque de la session.

Saludos.
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 13:21.