Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Melden Sie einen inaktiven Benutzer mit PHP ab

Der -4200 dient nur dazu, das Cookie zu zerstören. Cookies werden zerstört, indem für sie eine Zeit in die Vergangenheit gesetzt wird. Das Einstellen von 4200 Sekunden rückwärts ist also genauso effektiv wie 1 Sekunde rückwärts.

Um Benutzer abzumelden, gibt es mehrere Methoden. Sie können ein eigenes Cookie mit der letzten aktiven Zeit setzen (stellen Sie die Zeit jedes Mal ein, wenn der Benutzer eine Seite besucht). Fügen Sie am Anfang jedes Skripts eine Funktion ein, die dieses Cookie erhält und den Wert überprüft, der die letzte aktive Zeit enthalten sollte. Wenn diese Zeit älter ist als Ihre zulässige Inaktivitätszeit, dann zerstören Sie dieses Cookie und zerstören Sie auch Ihre Sitzung, wenn nicht, dann aktualisieren Sie den Wert auf die aktuelle Zeit.

Natürlich können Sie auch die letzte aktive Zeit in der Sitzung selbst speichern, was eine viel effizientere Methode darstellt, um den Overhead der Cookie-Übertragung und -Verwaltung zu beseitigen.

BEARBEITEN

Unten ist ein minimaler Code, um nach der letzten aktiven Zeit zu suchen und den Benutzer abzumelden:

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
}

Das ist die grundlegende Logik dahinter. Natürlich müssten Sie andere Dinge implementieren, die Sie zusammen mit Sicherheit, Überprüfung usw. benötigen....