sql >> Databasteknik >  >> RDS >> Mysql

Logga ut en inaktiv användare med PHP

-4200 är bara för att förstöra kakan. Cookies förstörs genom att ange en tid i det förflutna för dem. Så att ställa in 4200 sekunder bakåt är lika effektivt som 1 sekund bakåt.

För att logga ut användare finns det flera metoder. Du kan ha en egen cookieuppsättning med den senaste aktiva tiden (ställ in tiden varje gång användaren besöker en sida). I början av varje skript inkluderar en funktion som hämtar denna cookie och kontrollerar värdet som ska innehålla den senaste aktiva tiden. Om denna tid är äldre än din tillåtna inaktiva tid, förstör sedan denna cookie och förstör din session också, om inte, uppdatera värdet till den aktuella tiden.

Naturligtvis kan du också lagra den senaste aktiva tiden inne i själva sessionen, vilket är ett mycket effektivare sätt att ta bort kostnaderna för överföring och hantering av cookies.

REDIGERA

Nedan finns en minimal kod för att kontrollera den senaste aktiva tiden och logga ut användaren:

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 är den grundläggande logiken bakom detta. Naturligtvis skulle du behöva implementera andra saker du behöver tillsammans med säkerhet, kontroll, etc....



  1. Oracle 11g:I PL/SQL finns det något sätt att få information om infogade och uppdaterade rader efter MERGE DML-satsen?

  2. Hibernate:constraintName är null i MySQL

  3. MySQL använder kolumnnamn från en annan tabell

  4. SQL Server motsvarande Oracles CREATE OR REPLACE VIEW