Prévenir de la fin de session
bonjour
J'utilise un code JS que j’ai récupéré, nommé session.js, qui utilise principalement deux setTimeout():
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
/**
* 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='Votre session expirera dans '+minutes+' minute';
if(minutes>1) msg+='s';
msg+='.\nVoulez-vous recharger la page pour éviter la déconnexion automatique ?';
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('Votre session a expiré !\nVous êtes déconnecté à présent.');
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);
} |
L'objectif de ce code est de prévenir un utilisateur que sa session va se terminer sans action de sa part.
Pour mes tests, j’ai ouvert une fenêtre de chacun des deux navigateurs sur la page qui active ce code ; je l’ai fait sur plusieurs PC, Javascript était naturellement activé.
Le code fonctionne parfaitement avec Firefox, qui avertit bien, mais pas du tout avec IE8, qui ne dit rien du tout.
Merci par avance de vos conseils.
Francois
Le code m'intéresse aussi
Bonjour,
J'ai le même problème que François, mais pour ma part, je n'y connais rien en java... Auriez vous trouver la réponse pour que le code fonctionne aussi sous IE ?
Merci d'avance.