Deconnexion au bout d'un temps d'inactivité.

Résolu
svanwan Messages postés 8 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 2 novembre 2005 - 18 oct. 2005 à 10:58
BOB_BOOKSON Messages postés 19 Date d'inscription samedi 26 juin 2021 Statut Membre Dernière intervention 22 août 2022 - 26 juin 2021 à 15:26
Bonjour à tous,

Je dois gérer un site avec des sessions et on m'a demander de deconnecter automatiquement les utilisateurs qui sont inactif depuis 5 minutes. C'est à dire que si on touche pas à la fenétre, au bout de 5 minute on est jeté et on revient sur la page de login.

Quelqu'un peu m'indiquer comment faire :-)
D'avance merci.
A voir également:

6 réponses

J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
Modifié le 26 juin 2021 à 19:58
Oui, de façon très simplifiée ça donne :



au debut de chacun de tes scripts, tu fais un test sur une variable de session

if( isset($_SESSION['derniere_action']) and $_SESSION['derniere_action']>time() + 300 ) {

  /* time() + 300 secondes = heure actuelle + 5 min */

  /* donc dans ce cas, la dernière action date de moins de 5 minutes */

  $_SESSION['derniere_action'] = time(); // mise à jour de la variable

} else {

  /* soit pas encore de session ouverte => pas identifier */

  /* soit derniere action vielle de plus de 5 minutes => deconexion */

  /* DONC renvoi vers ta page "hors connexion" */

}



évidemment lors de la connexion, tu dois définir la varaible de session à l'heure de la connexion !



Bonne chance
4
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
Modifié le 26 juin 2021 à 19:59
en javascript :



setTimeOut("window.location.href='login.php';", 300000);


300 000 est le nombre de mili secondes dans 5 minutes

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy
2
J_G Messages postés 1406 Date d'inscription mercredi 17 août 2005 Statut Membre Dernière intervention 28 août 2007 10
19 oct. 2005 à 22:15
C'est vrai, que je n'avais jamais pensé au javascript pour faire ça...

Solution ma foie fort agréable à regarder !



Mais n'est ce pas dangereux de reporter ces fonctions "de sécurité" coté client ? (question)



...
0
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
21 oct. 2005 à 18:13
c'est un complément à la modification du fichier de conf php.ini...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
svanwan Messages postés 8 Date d'inscription mardi 18 octobre 2005 Statut Membre Dernière intervention 2 novembre 2005
22 oct. 2005 à 14:14
Ok Merci beaucoup j'essai ca de suite...
0
BOB_BOOKSON Messages postés 19 Date d'inscription samedi 26 juin 2021 Statut Membre Dernière intervention 22 août 2022
Modifié le 26 juin 2021 à 20:01
Bjr.
J'avais le même problème et j'ai parcouru plusieurs forums sans rien de concret si non des remarques qui, pour la plupart ne tiennent pas la route. En réfléchissant, bingo, j'ai trouvé la solution la plus simple:
En faite, je travaille sur une application php/Mysql. Lors de l'authentification d'un utilisateur au cas où les infos sont exactes je crée une variable session à laquelle j'affecte le time comme suite:
$_SESSION['moment']=time();

(puis les autres
$_SESSION['cat']=$w; $_SESSION['user']=$w1;
)
en suite, je dispose d'un fichier d'entête présent sur chaque page et dans lequel j'ai mis le code suivant au début:

<?php
 /* déconnexion après 5 min */
 session_start();
 $to=time();
 $t_on=$_SESSION['moment'];
 $diff_=$to-$t_on;
 if($diff_>60){ 
    echo"<script>alert('5 minutes sans aucune activité sur l'application, vous allez être amener à vous reconnecter!')</script>";
    unset($_SESSION['user'], $_SESSION['cat'],$_SESSION['moment']);
    header("Location: " ."decontype.php");} 
?>


Enfin pour savoir si le user a fait 5 min sans aucune activité, le code suivant est placé dans le fichier de connexion à la base des données: $_SESSION['moment'] = time(); ce qui permet de modifier cette valeur à chaque fois qu'une opération est effectuée (insert, select, update, delete,....) de cette façon si aucune activité n'est effectuée au bout du temps fixé, automatiquement les variables de sessions sont détruites.

J'estime que ceci pourrait aider quelqu'un.
0
Rejoignez-nous