Script pour verifier si Session toujours en cours

Eléphant du PHP | 80 Messages

25 déc. 2018, 21:52

Bonjour,

Existe-t'il un scripts, qui fasse une vérification régulière (chaque minute par exemple) pour savoir si un utilisateur est toujours connecté au serveur ?

Je commence par un
session_cache_expire(30);
session_start();
sur mon index.php

Toutefois, comme je fais des appels ajax, si je reste présent (sans rien faire) sur une page longtemps (plus de 30mn), et fais des modifications ensuite, elle ne sont pas prises en compte, puisque ma session est terminée. En effet, je mets en $_SESSION[''] une valeur spécifique à chaque utilisateur pour indiquer où sauvegarder les infos dans la BDD.

Si un script "en tâche de fond" pouvait me permettre, une fois que ma session est terminée, me renvoyer vers une page spécifique, ca serait super !!
Et pas que lorsque je rafraîchis la page. En effet, si je me balade sur une autre page du site ou je rafraîchis, et que je ne suis plus connecté, je suis automatiquement dirigé vers la page de reconnexion.

Merci de votre aide !!

Stéphane..

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

25 déc. 2018, 22:15

Bonjour,

Tu sais déjà faire des appels ajax de ta page vers ton serveur, donc tu sais déjà faire le plus difficile :-D
Ensuite ce qu'il faut sur ta page c'est que tu fasses un petit script qui va lancer régulièrement un appel ajax dont le seul but est de vérifier que la session soit toujours valable.
Pour faire une action toutes les X minutes, tu as une fonction toute faite en javascript : window.setTimeout()
https://developer.mozilla.org/fr/docs/W ... setTimeout

En gros, le principe c'est que tu crées une fonction verif_session() qui va faire un appel ajax pour vérifier si la session est toujours valide :
- Si la session est ok, alors tu utilises window.setTimeout() pour rappeler ta fonction verif_session() dans X minutes
- Si la session est ko, alors tu affiches un message à l'utilisateur "Session expirée..."
Quand tout le reste a échoué, lisez le mode d'emploi...