Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Far scadere la sessione dopo un certo periodo se non si è già usciti dal browser

    Salve a tutti,

    avrei necessità di azzerare i dati di sessione dopo un certo periodo temporale, se l'utente non è già uscito dal browser.

    Ho pensato di agire sul parametro session.cookie_lifetime che è impostato a 0 di default eliminando il cookie di sessione alla chiusura del browser, ma se il browser dovesse restare aperto vorrei cancellare i dati di sessione dopo ad esempio 3 ore. Come posso fare?

    Dovrei fare una funzione php che ogni 3 ore (come si fa?) verifica se il cookie di sessione è impostato e in tal caso lo elimina, o ci sono altre strade?

    grazie in anticipo per le risposte

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,505
    Parto dal presupposto che non stai usando alcun framework, ma stai scrivendo tutto tu da zero.

    Potresti crearti un file php in cui metti un codice così
    Codice PHP:
    session_start();

    // timestamp corrente
    $now time();

    // verifichi se la sessione era già esistente 
    // e se il timestamp corrente eccede il limite previsto per la scadenza
    if ( isset($_SESSION['session_limit']) && $now $_SESSION['session_limit'] ) 
    {
        
    // in tal caso la sessione è scaduta e va distrutta
        
    session_unset();
        
    session_destroy();

        
    // attivi una nuova sessione con session_start() oppure reindirizzi ad una pagina che notifichi
        // all'utente la scadenza della sessione, lo rimandi al login o fai ciò che meglio credi
    }

    // imposti la prossima scadenza della sessione
    $_SESSION['session_limit'] = $now + (3600 3); 
    Poi nei file in cui usi la sessione, al posto di session_start() includi questo file.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.