Mysql
 sql >> Base de données >  >> RDS >> Mysql

Déconnecter un utilisateur inactif en utilisant PHP

Le -4200 est juste pour détruire le cookie. Les cookies sont détruits en fixant une heure dans le passé pour eux. Donc, reculer de 4 200 secondes est aussi efficace que reculer d'une seconde.

Pour déconnecter les utilisateurs, il existe plusieurs méthodes. Vous pouvez définir votre propre cookie avec la dernière heure active (définir l'heure à chaque fois que l'utilisateur visite une page). Au début de chaque script, incluez une fonction qui récupère ce cookie et vérifie la valeur qui doit contenir la dernière heure active. Si cette heure est antérieure à votre temps d'inactivité autorisé, détruisez ce cookie et détruisez également votre session, sinon, mettez à jour la valeur à l'heure actuelle.

Bien sûr, vous pouvez également stocker à l'intérieur de la session elle-même la dernière heure d'activité, ce qui est un moyen beaucoup plus efficace d'éliminer les frais généraux liés au transfert et à la gestion des cookies.

MODIFIER

Vous trouverez ci-dessous un code minimal pour vérifier la dernière heure d'activité et déconnecter l'utilisateur :

function login(){
    //check login username/pass etc...
    $_SESSION['last_active_time'] = time();
}

function auth(){
   if($_SESSION['last_active_time'] < (time() - 1800)){ //1800 is 30 minutes (time in seconds)
        logout(); //destroy the session in the logout function
    }
    else{
        $_SESSION['last_active_time'] = time();
    }
   //do some auth related things
}

C'est la logique de base derrière cela. Bien sûr, vous devrez implémenter d'autres éléments dont vous avez besoin en plus de la sécurité, de la vérification, etc....