Timer de validation de session
Bonjour,
L'idée est de pouvoir informer les utilisateurs de la fin d'une session web authentifiée.
Parant du principe qu’à chaque appel au serveur on recharge/ré-active la session en cours il faut reprendre le calcule à chaque chargement de page.
Pour ce faire, il faut construire un sous masque, que l'on intègrera à toutes les pages, contenant une fonction définissant un timer au onLoad des pages. Le timer permettra à expiration d'envoyer un pop-up ou un encart en DHTML au centre de la page utilisateur pour l'informer que sans action de sa part sa session expirera dans N min.
Donc pour l'entête JavaScript du sous-masque le code est le suivant:
Sur le Onload ses pages - Je n'ai pas réussi à utiliser le onLoad du sous-masque si quelqu'un à une idée...
Le sous-masque est constitué de deux champs
duree_session : qui récupère la durée de session du serveur
heure : champs dans lequel on met la fin de session
L'idée est de pouvoir informer les utilisateurs de la fin d'une session web authentifiée.
Parant du principe qu’à chaque appel au serveur on recharge/ré-active la session en cours il faut reprendre le calcule à chaque chargement de page.
Pour ce faire, il faut construire un sous masque, que l'on intègrera à toutes les pages, contenant une fonction définissant un timer au onLoad des pages. Le timer permettra à expiration d'envoyer un pop-up ou un encart en DHTML au centre de la page utilisateur pour l'informer que sans action de sa part sa session expirera dans N min.
Donc pour l'entête JavaScript du sous-masque le code est le suivant:
- Code : Tout sélectionner
var timid;
function TempsEcoule()
{
//location.href='page.php';
alert('Attention fin session dans une minute!');
}
function PageAction()
{
window.clearTimeout(timid);
var dj=new Date();
frm = window.document.forms[0];
//durée session moins 5 min
duree_session = frm.duree_session.value-1 //
minute=dj.getMinutes()+duree_session+1;
heure=dj.getHours();
if (minute>59)
{
minute=minute-60;
minute='0'+minute;
heure=dj.getHours()+1;
}
frm.heure.value="Déconnexion à :"+heure+":"+minute;
timid=window.setTimeout("TempsEcoule();",duree_session*60000);
}
Sur le Onload ses pages - Je n'ai pas réussi à utiliser le onLoad du sous-masque si quelqu'un à une idée...
- Code : Tout sélectionner
PageAction();
Le sous-masque est constitué de deux champs
duree_session : qui récupère la durée de session du serveur
- Code : Tout sélectionner
Server := "MonServer";
vue := "($ServersLookup)";
@DbLookup("":"NoCache" ; Server:"names.nsf"; vue; Server;"HTTP_IdleSessionTimeout" ; [FailSilent])
heure : champs dans lequel on met la fin de session