sql >> Database teknologi >  >> RDS >> Mysql

Log af en inaktiv bruger ved hjælp af PHP

-4200 er bare for at ødelægge cookien. Cookies destrueres ved at angive en tid i fortiden for dem. Så at indstille 4200 sekunder bagud er lige så effektivt som 1 sekund bagud.

For at logge af brugere er der flere metoder. Du kan have et eget cookiesæt med det sidste aktive tidspunkt (indstil tidspunktet hver gang brugeren besøger en side). I begyndelsen af ​​hvert script skal du inkludere en funktion, som henter denne cookie og kontrollerer den værdi, som skal indeholde den sidste aktive tid. Hvis denne tid er ældre end din tilladte inaktive tid, så ødelægge denne cookie og ødelægge din session også, hvis ikke, så opdater værdien til det aktuelle tidspunkt.

Du kan selvfølgelig også gemme den sidste aktive tid inde i selve sessionen, hvilket er en meget mere effektiv måde, hvorpå du kan fjerne omkostningerne ved overførsel og administration af cookies.

REDIGER

Nedenfor er en minimal kode til at tjekke for det sidste aktive tidspunkt og logge af brugeren:

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
}

Det er den grundlæggende logik bag dette. Selvfølgelig skal du implementere andre ting, du har brug for sammen med sikkerhed, kontrol osv...



  1. MySQL med C#, fra en PHP-udviklers synspunkt

  2. mysql 5.7 log-slow-queries fejl

  3. SUM() Funktion i SQL Server

  4. Hvorfor får jeg denne fejlmeddelelse "Kommunikationslink-fejl Den sidste pakke sendt...", når jeg opretter forbindelse til MySQL med Java (Netbeans)?