Hola, quisiera saber cómo le hago (en forma práctica porque he encontrado en google, pero solo teoría) para que se termine automáticamente una sesión si cierta persona no se desloguea y cierra el navegador.
Gracias!
| |||
Expiración de sesiones! Hola, quisiera saber cómo le hago (en forma práctica porque he encontrado en google, pero solo teoría) para que se termine automáticamente una sesión si cierta persona no se desloguea y cierra el navegador. Gracias! |
| ||||
Re: Expiración de sesiones! No puedes hacer que la sesión termine por si sola (creo) pero una solución práctica sería la siguiente: Cuando el usuario inicia sesión tu creas una sesión extra llamada tiempo cuyo valor sea igual a time() osea la hora y fecha exacta en que se creó la sesión. Ahora cada vez que validez que el usuario esté conectado fijándote si la sesión de usuario existe, también te fijas cual es la diferencia de tiempo desde que el usuario ha iniciado sesión. En caso de que el resultado de mayor a por ejemplo 3600 segundos lo desconectas. Utilizando el sistema anterior lograrás que exista un tiempo fijo para las sesiones y funciona tanto si el usuario entra un segundo después de que la sesión expire o horas luego de que expiró. P.D.: Si quieres que las sesiones se extiendan aún cuando el usuario ya ha cerrado el navegador sustituye a la sesión antes mensionada por una cookie. Saludos y espero haberte ayudado un poco por lo menos.
__________________ Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos? (únete a la campaña !) |
| |||
Re: Expiración de sesiones! ok, gracias...el primer ejemplo es exactamente lo que quiero, pero al cerrar el navegador, realmente lo que que me gustaría saber es saber si se puede realizar cierta acción al momento de cerrar el navegador o por lo menos saber a qué hora salió tal persona del sistema, y guardar ese dato en una tabla si no desloguea y nada más cierra el navegador. Gracias... |
| ||||
Re: Expiración de sesiones! Se me ocurre una forma pero no creo que sea muy práctica, tal vez algún miembro conozca una mejor opción. Podrías colocar en el body de cada una de tus páginas un onclose="funcionregistradora()" que mediante AJAX (se me ocurre) podrías llamar a un script PHP que guarde en la BD el resultado de time(). Al tenerlo en cada página a la que el usuario acceda esta función grabaría la fecha y hora de la última página del usuario. Qué te parece?
__________________ Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos? (únete a la campaña !) |
| |||
Re: Expiración de sesiones! hey gracias...pero existe en el body la propiedad onclose? Porque no lo sabía? Yo solo he probado con onunload pero realiza la acción cada vez que cambio de pagina y lo correcto sería que la hiciera al cerrar el navegador. Pero bueno...sigo pendiente para ver si hay algo más....gracias! |
| ||||
Re: Expiración de sesiones! Si lo siento, era onunload, no había tomado en cuenta que lo hace también cuando se cambia de página. :S
__________________ Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos? (únete a la campaña !) |
| ||||
Re: Expiración de sesiones! Hola, normalmente, esto no es un gran problema pues las sesiones se mantienen identificadas de parte del cliente a través de una Cookie. En cualquier caso, puedes colocar tu una cookie en el navegador del usuario colocando como expire=0 esto hace que la cookie se elimine cuando el usuario cierre el navegador... y listo. Para más info mira: http://es.php.net/manual/es/function.setcookie.php |
| |||
Re: Expiración de sesiones! ok, pero tambien necesito que guarde en una tabla la hora de salida....o una aproximación de la hora de salida del usuario. Ya que esto solo se registra si se presiona el link para cerrar sesión, pero si solo se cierra el navegador y no se presiona antes el link, no puedo registrar nada...gracias... |
| |||
Re: Expiración de sesiones! En principio, creo que esta un poco mal redactada tu pregunta, pero más o menos te entendí, yo he leído sobre la propiedad window.closed pero la verdad no sé exactamente, deberías investigarla...saludos |
| |||
Re: Expiración de sesiones! |
| ||||
Re: Expiración de sesiones! Lo que dice pragone es exáctamente lo que yo dije y parece ser la mejor solución, nadie más ha planteado una idea que cumpla tan bien los requisitos como la nuestra.
__________________ Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos? (únete a la campaña !) |
| |||
Re: Expiración de sesiones! Hey de verdad gracias a todos, pero creo que los últimos comentarios son los que me parecen más acertados....y ya entendí que en cada pagina en el onunload vaya grabando la hora actual no importando si salga o no definitivamente del sitio...perfecto, solo que mi problema sería en saber cómo hacer esa función en el unonload porque la verdad no sé mucho de ajax....si me pudieran seguir ayudando, muchas gracias, y si no pues también muchas gracias, ya me han ayudado bastante...ah y felices fiestas a todos.... |
| ||||
Re: Expiración de sesiones! No sé si AJAX podría ser la solución definitiva (¿funciona AJAX en el onunload?) pero quizás poniendo dos frames: Uno al 0% que se encargue de controlar sesiones, y el otro al 100% que sería tu web actual. Cuando se cerrase el 0% (onunload de ese frame) significa que hemos cerrado el navegador. ¿Podría ser así?
__________________ - Haz preguntas inteligentes, y obtendrás más y mejores respuestas. - Antes de postearlo Inténtalo y Búscalo. - Escribe correctamente tus mensajes. |
| ||||
Re: Expiración de sesiones! pragone: todo bien. fili9: Esa opción puede ser válida también, de todos modos si deseas leer algo de AJAX, puedes seguir el siguiente vínculo, realmente verás que es mucho más fácil de lo que parece, lo digo por experiencia. FAQ's del foro de AJAX (forosdelweb.com) El vínculo anterior me ha sido de ayuda, realmente verás que sin leer mucho podrías incluso hacer funcionar un sistema como el planteado por pragone y por mí en no más de 10 minutos y con un simple "copiar y pegar". Saludos y espero que finalmente puedas tener el sistema que deseas.
__________________ Yo hago preguntas inteligentes para obtener respuestas rapidas, y vos? (únete a la campaña !) |