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

Que faire si la session de connexion PHP expire

coldplay.xixi
Libérer: 2023-03-05 07:12:01
original
2906 Les gens l'ont consulté

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();
Copier après la connexion

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();
        }
    }
Copier après la connexion

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");
        }
    }
Copier après la connexion

[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!

Étiquettes associées:
Déclaration de ce site Web
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
Derniers numéros
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal