Bonsoir,

J'utilise ma méthode MVC pour mon programme

J'ai un contrôleur principal qui entre autre vérifie si un utilisateur est logué

Je souhaiterai dans ce cas qu'apparaisse au bout d'un certain temps d'inactivité un message pour demander à l'utilisateur si il veut rester sur la page
S'il ne veut pas il reste sur la page, sinon il se délogue

Le problème est que si je décide de rester sur la page le timer ne recommence pas à zéro comme je ne re mouvemente pas le contrôleur principal
Par contre dès que je change de page mon timer redémarre

Comment résoudre ce problème

Mon code Controleur



//RECHERCHE SI AUTORISATION        
        $user_connect = new DBAuth(App::getInstance()->getDb());
        
        $this->user_items = $user_connect->user();//FONCTION user dans Classe DBAuth

        if($this->user_items)
            {
?>                
            <script type="text/javascript">

            function resetTimer() {
                clearTimeout(inactivityTimeout);
                startTimer();
            }

            function startTimer() {
                inactivityTimeout = setTimeout(function() {
                    if (confirm("Êtes-vous toujours actif sur cette page?")) {
                        window.location.href = "/logout"; // Rediriger si l'utilisateur choisit de sortir
                    }
                }, 30000); // Délai de 30 secondes pour répondre au modal
            }

            // Démarrez le timer dès que la page est chargée
            startTimer();

        // Réinitialisez le timer à chaque interaction utilisateur (par exemple, clic, pression de touche)
        document.addEventListener("click", resetTimer);
        document.addEventListener("keydown", resetTimer);; 


            </script>
 <?php                  
            }



Merci pour votre aide
Modifié par dudu22 (19 Dec 2023 - 23:51)