Heim > Backend-Entwicklung > PHP-Problem > Was tun, wenn bei der PHP-Anmeldesitzung eine Zeitüberschreitung auftritt?

Was tun, wenn bei der PHP-Anmeldesitzung eine Zeitüberschreitung auftritt?

coldplay.xixi
Freigeben: 2023-03-05 07:12:01
Original
2824 Leute haben es durchsucht

Lösung für PHP-Anmeldezeitüberschreitung: Verwenden Sie zuerst die Sitzung, um die Anmeldezeit beim Anmelden aufzuzeichnen. Überprüfen Sie dann, ob die Sitzung nicht vorhanden ist, und kehren Sie dann zur Anmeldeseite zurück. Vergleichen Sie sie die Ladezeit der Seite mit der Anmeldezeit; wenn sie schließlich größer als das Timeout ist, löschen Sie sie einfach.

Was tun, wenn bei der PHP-Anmeldesitzung eine Zeitüberschreitung auftritt?

【Verwandte Lernempfehlung: php-Programmierung(Video)】

Lösung für PHP-Anmelde-Timeout-Sitzung:

php-Anmelde-Timeout-Sitzungsproblem, das Prinzip ist:

1. Bei der Protokollierung verwenden in Sitzungsaufzeichnungen Anmeldezeit

$_SESSION['time']=time();
Nach dem Login kopieren

2. Wenn die Seite nicht vorhanden ist, wird festgestellt, dass zur Anmeldeseite zurückgesprungen wird. Wenn die Sitzung vorhanden ist, wird die Ladezeit der Seite mit der Anmeldezeit verglichen . Wenn es größer als das Timeout ist, löschen Sie die Sitzung. Wenn die Zeit kleiner als das Timeout ist, aktualisieren Sie den Sitzungswert für die Anmeldezeit.

Anmeldecode:

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();
        }
    }
Nach dem Login kopieren

Öffentlicher Controller-Konstruktorcode:

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");
        }
    }
Nach dem Login kopieren

[Verwandte Lernempfehlungen: php-Grafik-Tutorial]

Das obige ist der detaillierte Inhalt vonWas tun, wenn bei der PHP-Anmeldesitzung eine Zeitüberschreitung auftritt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage