Page 1 sur 1

Timer de validation de session

MessagePublié: 19 Mars 2009 à 10:22
par bigBenTem
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:
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