sql >> Database >  >> RDS >> Mysql

Een inactieve gebruiker uitloggen met PHP

De -4200 is alleen om het koekje te vernietigen. Cookies worden vernietigd door er een tijd in het verleden voor in te stellen. Dus 4200 seconden achteruit instellen is net zo effectief als 1 seconde achteruit.

Om gebruikers uit te loggen zijn er meerdere methoden. U kunt uw eigen cookie instellen met de laatste actieve tijd (stel de tijd in telkens wanneer de gebruiker een pagina bezoekt). Voeg aan het begin van elk script een functie toe die deze cookie ophaalt en de waarde controleert die de laatste actieve tijd zou moeten bevatten. Als deze tijd ouder is dan uw toegestane inactieve tijd, vernietig dan deze cookie en vernietig ook uw sessie, zo niet, werk dan de waarde bij naar de huidige tijd.

Natuurlijk kunt u ook de laatste actieve tijd in de sessie zelf opslaan, wat een veel efficiëntere manier is om de overhead van de overdracht en het beheer van cookies weg te nemen.

BEWERKEN

Hieronder vindt u een minimale code om te controleren op de laatste actieve tijd en om de gebruiker uit te loggen:

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
}

Dat is de basislogica hierachter. Natuurlijk zou je andere dingen moeten implementeren die je nodig hebt, samen met beveiliging, controle, enz....



  1. Een Postgres-tabel klonen, inclusief indexen en gegevens

  2. IDE voor Pl/SQL-ontwikkeling

  3. Postgres-dump van alleen delen van tabellen voor een dev-snapshot

  4. 5 redenen om voor Arkware te kiezen