Maison  >  Article  >  développement back-end  >  Que faire si la session de connexion PHP expire

Que faire si la session de connexion PHP expire

coldplay.xixi
coldplay.xixioriginal
2020-08-24 10:30:422767parcourir

Solution au délai d'expiration de la session PHP : utilisez d'abord la session pour enregistrer l'heure de connexion lors de la connexion ; puis lorsque la page est ouverte, jugez si la session n'existe pas, puis revenez à la page de connexion ; , si la session existe, ajoutez le temps de chargement de la page et Comparez le temps de connexion s'il est supérieur au timeout, supprimez-le.

Que faire si la session de connexion PHP expire

[Recommandations d'apprentissage associées : programmation php (vidéo)]

délai d'expiration de connexion php La solution à la session :

Problème de session d'expiration du délai de connexion php, le principe est :

1 Utilisez la session pour enregistrer l'heure de connexion lors de la connexion

$_SESSION['time']=time();

2. . Lorsque la page est ouverte Déterminez si la session n'existe pas, revenez à la page de connexion ; si la session existe, comparez le temps de chargement de la page avec le temps de connexion, s'il est supérieur au délai d'expiration, supprimez la session, si le temps est écoulé. le temps est inférieur au délai d'attente, mettez à jour la valeur de la session du temps de connexion !

Code de connexion :

public function login(){
        if($_POST){
            $where['username']=$_POST['username'];
            $where['password']=md5("php100".$_POST['password']);
            $users=M('users')->where($where)->find();
            if($users){
                $_SESSION['id']=$users['id'];
                $_SESSION['user_shell']=md5($users['username'].$users['password']);
                $_SESSION['time']=time();
                $this->redirect('Index/index');
            }else{
                echo "";
            }
        }else{
            $this->display();
        }
    }

Code constructeur du contrôleur public :

public function _initialize()
    {
        if(isset($_SESSION['user_shell'])){
            if(time()-$_SESSION['time']>60){
                unset($_SESSION['user_shell']);
                $url=U('Login/login');
                Header("Location:$url");
            }else{
                $_SESSION['time']=time();
            }
        }else{
            $url=U('Login/login');
            Header("Location:$url");
        }
    }

[Recommandations d'apprentissage associées : Tutoriel graphique php]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn