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

Disconnettere un utente inattivo utilizzando PHP

Il -4200 serve solo a distruggere il biscotto. I cookie vengono distrutti impostando un tempo nel passato per loro. Quindi impostare 4200 secondi indietro è efficace quanto 1 secondo indietro.

Per disconnettere gli utenti ci sono più metodi. Puoi avere un tuo cookie impostato con l'ultima ora attiva (imposta l'ora ogni volta che l'utente visita una pagina). All'inizio di ogni script include una funzione che ottiene questo cookie e controlla il valore che dovrebbe contenere l'ultimo tempo attivo. Se questo tempo è più vecchio del tempo di inattività consentito, distruggi questo cookie e distruggi anche la tua sessione, in caso contrario, aggiorna il valore all'ora corrente.

Naturalmente, puoi anche memorizzare all'interno della sessione stessa l'ultimo tempo attivo, il che è un modo molto più efficiente rimuovendo il sovraccarico del trasferimento e della gestione dei cookie.

MODIFICA

Di seguito è riportato un codice minimo per verificare l'ultima ora attiva e disconnettere l'utente:

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
}

Questa è la logica di base dietro questo. Ovviamente dovresti implementare altre cose di cui hai bisogno insieme a sicurezza, controllo, ecc...