Aviso te termino de session

Buenos Días:
Deseo que hoy tengas un día agradable.
Mi duda es la siguiente: tengo un portal web, y doy acceso a mis usuarios por medio de un simple formulario donde capuran su nombre de usuario y contraseña. Después les otorgo una session que les dura aprox. 20 minutos.
Es decir, cada vez que usan el sistema su session se renueva a 0, si de repente ellos no usan el sistema por 20 minutos, su session se acaba y entonces tienen que volver a registrarse para usar el sistema.
Bien, la pregunta es como puedo hacer para que cuando pasen esos 20 minutos sin usar el sistema les aparezca una ventana o aviso automáticamente donde se les avisa que su sesión ya finalizo y que aparezca sin necesidad de que el usuario haga nada en especial, simplemente que aparezca ahí...
Me puedo esperar a que el usuario intente usar el sistema y entonces la ventana o mensaje aparezca, pero lo que quiero es que la ventana aparezca por si sola aunque el usuario no haga uso del sistema. Así funciona en el potal de Banamex.
Gracias.
3

3 Respuestas

56.050 pts. Soy Director General de SkyNet Global Solutions, soy...
Puedes generarte un Pop Up desde la página inicial a la que ingresan tus usuarios, una vez que se han registrados, indicando que su sesión caduca 20 minutos después de no utilizarse.
Dentro de todas las hojas variables de tu web de la sección interna donde el usuario permanece una vez registrado (si es que utilizas algún frame) o en todas si (si no utilizas frames para esta sección)deberás colocar un script de CAMBIO DE HOJA, a este script debes tu de configurarle el tiempo, a modo tal que 20 minutos después, se vaya a la hoja "caduca.html" por ejemplo, y que en esa hoja, tu le indiques al usuario que su sesión está caducando, y a esa misma hoja (cadica.html) le metes el mismo script, ahora llamado a una hoja llamada sesioncerrada.html que tenga como target al frameset (Si utilizas frames, de modo contrario utiliza el script que no integra un TARGET), de modo que cambie toda la hoja y no solo la sección que pertenece al target de un frame, y en esa hoja (sesioncerrada.html) tu indiques al usuario que su sesión ha cadicado.
Si utilizas Php entonces trabajarás con terminaciones php en vez de html y puedes incluso generar una cookie que dure los 20 minutos y que una vez cadica la cookie, si el usuario hace hacia atrás, el sistema le indique que su sesión ha caducado.
El script de auto cambio es una META que va del siguiente modo (SI UTILIZAS FRAMES):
<head>
<title>TITULO DE TU WEB</title>
<meta http-equiv="refresh" content="24;URL=http://www.dominioelegido.com/archivo_al_que_cambia.htm" target="frame">
<!--Original de Monodrack (todoexpertos.com)-->
</head>
El script de auto cambio es una META que va del siguiente modo (SI "NO" UTILIZAS FRAMES):
<head>
<title>TITULO DE TU WEB</title>
<meta http-equiv="refresh" content="24;URL=http://www.dominioelegido.com/archivo_al_que_cambia.htm">
<!--Original de Monodrack (todoexpertos.com)-->
</head>
Y si necesitas el código para el Pop-Up:
<script language="javascript"
<!--Original de Monodrack (todoexpertos.com)-->
popupWindow = window.open('http://www.dominioelegido.com/archivo_a_abrir.html', 'popWin', 'top=50,left=50,screenx=50,screeny=50,width=600,height=500,scrollbars=no,buttons=no,toolbar=no,location=no,menubar=no,resizable=no,directories=no')
// -->
</script>
A este script puedes ajustarle las dimensiones, si deseas o no las diferentes opciones del explorador y la url del archivo a mostrarse.
Tu mensaje me parece una solución ampliamente inteligente.
Pero tengo una duda... Ese escript de auto cambio que va colocado en una etiqueta meta, ¿funciona en cualquier navegador? ¿O solo es explorer?
Gracias.
Tengo otra duda:
Efectivamente si sitio usa un solo frameset para navegar los documentos, por lo tanto lo adecuado aquí es colocar ese script de tiempo en el frameset. sin embargo.. ¿cada vez que el usuario haga uso de algún documento el frameset también se actualiza con el tiempo? Es decir si algún usuario cambia el contenido de un frame, ¿el framset también se actualiza?
Yo estoy seguro de que el script funciona en otros navegadores, pero puedes hacer una prueba, subiendo algún ejemplo en el que apliques el script y lo visualices con diferentes navegadores (puedes probarlo para un tiempo muy corto y así no perder tiempo).
Respecto a tu siguiente duda, no estoy seguro de que funcione con el frameset, pero de ser así, no se resetea el tiempo cada vez que utilizas al frameset, ya que realmente no vuelves a utilizar nunca al frameset, las varialbes son siempre las hojas que se cargan en los diferentes frames.
Muy bien, tu respuesta me acaba de abrir nuevos horizontes en mi sitio, ya me son muy útiles, y ya los tengo en operación después de investigar un poco con ellos, agradezco tu atención ampliamente y con mucho ruido te doy de nuevo las gracias.
[email protected] esta a tus ordenes para lo que necesites.
591.125 pts. Licenciado en Informática
La verdad es que el único sistema que conozco para que una Web abra una ventana sin estar en ella misma, es, o bien creando un proceso de tiempo en el PC del usuario, o bien, que supongo que será, con la descarga de un pequeño software al PC del cliente que hará las veces de testeador de tiempo. Una vez el usuario se haya dado de alta, y aunque salga de la Web, este programita sigue activo y avisa del paso de los 20 minutos.
¿No recuerdas si al darte de alta en Banamex había que bajarse o aceptar un pequeño software?... posiblenente sea eso.
Espero haberte orientado!, no olvides cerrar la pregunta para que otras personas puedan preguntarme!.
8.325 pts. Oct. 2002 - Actualidad Diplomatura de Ingeniería...
Creo que no se puede por medio de javascript, tendrás que buscar la forma de hacer un contador en tiempo real y que cuando llegue a 20 minutos salte automáticamente una ventana de alerta en la que se le notifique, siento no haberte podido ayudar más.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas