Visualizzazione dei risultati da 1 a 4 su 4

Discussione: durata di una sessione

  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    durata di una sessione

    Salve a tutti,
    ho fatto una pagina di login che avvia una sessione con session_start() e poi indirizza ad un altra pagina.
    alla fine distruggo la sessione con session_destroy().

    Vorrei sapere da voi se la sessione avviata dura effettivamente fino a quando non viene distruttta o se termina da sola dopo un tempo prestabilito.

    Grazie
    Guidino

  2. #2
    La sessione ha due vite. Una lato CLIENT determinata dal browser e dal suo cookie di sessione, l'altra da un timeout di inattivita' lato server determinato dal tempo di durata stabilito nel php.ini

    Il tempo sul server viene "misurato" dall'ultima apertura del file al tempo corrente. Sul client viene determinato dalla chiusura del browser oppure da un tempo di validita' definito per il cookie di sessione sempre nel php.ini

    vedi il php.ini alla sezione [session]

    Nel caso di distruzione della sessione devi provvedere a cancellare il contenuto del file di sessione ($_SESSION) altrimenti questo verra' ripreso dal browser se non e' stato chiuso ed il timeout non scaduto.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    542

    sessione

    Grazie per la risposta,
    però ho ancora un pò di confusione.

    per il momento ora non uso i cookie ma solo $_SESSION e la sessione la distruggo quando l'utente clicca su un determinato link per cambiare pagina.
    Se invece la pagina viene chiusa dal pulsante chiudi del browser la sessione rimane in vita per il timeout prestabilito?

    Quale deve essere una buona impostazione per il timeout della sessione?

    Grazie mille
    Guidino

  4. #4
    il cookie di sessione viene usato da php in modo trasparente. Viene settato e gestito dal php.ini

    Se il browser viene chiuso e con l'impostazione di default del php.ini, il cookie di sessione scade e session_start() aprira' una sessione nuova senza piu' toccare la precedente che completera' il timeout (lato server) e scadra' del tutto.

    Se chiudi la sessione lato client con comando:

    <?php
    session_start();
    $_SESSION = array();
    session_destroy();

    il file di sessione se richiamato dal client con nuova pagina, senza che il browser venga chiuso, avra' il cookie di sessione ancora valido e quindi il server riesumera' lo stesso file distrutto prima, ma che risultera' VUOTO avendo inizializzato $_SESSION con array(). Chi se ne frega se il nome sessione rimane lo stesso, l'importante e' che la sessione sia svuotata del contenuto.

    Bastera' eseguire sempre il controllo del contenuto per definire se l'accesso alla sessione e' valido oppure no. Ovviamente sara' valido solo l'accesso ad una sessione vuota nel caso di pagina di login, mentre in tutti gli altri casi se la sessione e' vuota lo user deve venire ridiretto alla pagina di login.

    piu' difficile da spiegare che da fare.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.