/** * affiche une bo”te de dialogue d'information sur l'expiration imminente de la session utilisateur : * si l'utilisateur clique sur OK, la page est rechargŽe pour rŽinitialiser le chronomŹtre de session * @param int minutes dŽlai avant l'expiration de la session */ function rappelSession(minutes) { var msg='Your session will expire in : '+minutes+' minutes'; if(minutes>1) msg+='s'; msg+='.'+"\n"+'Do you reload the page to avoid automatic disconnection ?'; if(confirm(msg)) location.reload(); } /** * affiche une alerte sur l'expiration de la session et redirige vers une autre page * @param string url URL de redirection en cas de dŽconnexion */ function expirationSession(url) { alert("Your session has expired !\nYou are now disconnected."); location.href=url; } /** * affiche des avertissements sur le dŽlai d'expiration de la session : * - un premier au bout de (expiration-rappel) minutes (par ex. : 20-3 = 17 minutes) * - un second au bout de (expiration) minutes (par ex. : 20 minutes) * @param int expiration dŽlai en minutes d'expiration de la session * @param int rappel dŽlai en minutes avant l'expiration de la session pour l'affichage du rappel * @param string redirection URL de redirection en cas de dŽconnexion */ function session(expiration, rappel, redirection) { // affichage du rappel var chronoRappel=setTimeout('rappelSession('+rappel+')', (expiration-rappel)*60*1000); // une fois le rappel affichŽ, on avertit uniquement de l'expiration var chronoExpiration=setTimeout('expirationSession(\''+redirection+'\')', expiration*60*1000); }