Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Sessione scaduta!

  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178

    Sessione scaduta!

    Ritenevo che la logica delle sessioni fosse che un utente autenticato può navigare all'interno di pagine personali FINO a che rimane relativamente attivo, ovvero fino a che non passa un determinato tempo dall'ultimo comando inviato tramite browser.

    Come è possibile allora che la mia sessione scada SEMPRE dopo tot secondi dalla creazione della sessione stessa?

    Ecco il codice "preso da un articolo di questo sito":

    Codice PHP:
    function auth_clean_expired(){
        global 
    $_CONFIG;
        
        
    $result mysql_query("SELECT creation_date FROM ".$_CONFIG['table_sessioni']." WHERE uid='".auth_get_uid()."'");
        if(
    $result){
            
    $data mysql_fetch_array($result);
            if(
    $data['creation_date']){
                if(
    $data['creation_date'] + $_CONFIG['expire'] <= time()){
                    switch(
    auth_get_option("TRANSICTION METHOD")){
                        case 
    AUTH_USE_COOKIE:
                            
    setcookie('uid');
                        break;
                        case 
    AUTH_USE_LINK:
                            global 
    $_GET;
                            
    $_GET['uid'] = NULL;
                        break;
                    }
                }
            }
        }
        
        
    mysql_query("
        DELETE FROM "
    .$_CONFIG['table_sessioni']."
        WHERE creation_date + "
    .$_CONFIG['expire']." <= ".time()
        );

    Ho provato entrambe le modalità, sia COOKIES che LINK, il risultato è sempre lo stesso.
    Dopo 60 secondi dal login (tempo di default di fine sessione), quest'ultima scade.
    Forse che questo codice debba funzionare proprio in questa maniera???
    Help!

  2. #2
    Moderatore di Server Apache L'avatar di marketto
    Registrato dal
    Sep 2001
    Messaggi
    5,858
    per aumentare la durata della sessione devi modificare questo parametro nel file config.php:
    codice:
    $_CONFIG['expire'] = 60;

    think simple think ringo

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178
    Originariamente inviato da marketto
    per aumentare la durata della sessione devi modificare questo parametro nel file config.php:
    codice:
    $_CONFIG['expire'] = 60;
    Quello ok, normale.. ma non è possibile che la sessione scada anche se l'utente è attivo all'interno del sito!
    Così invece accade.
    Dopo 60 secondi c'è bisogno di autenticarsi nuovamente.
    Come faccio a imporre che la sessione scada SOLO se passano più di 60 secondi dall'ultima azione dell'utente?

  4. #4
    Ora non ricordo molto bene ma se non sbaglio il sistema utilizza il db. Memorizza la data e la funzione di GarbageCollection cancella tutte l sessioni scadute dal db.

    Devi fare in modo che ad ogni azione (Quindi al caricamento di ogni nuova pagina) la colonna che memorizxza data ed ora di registrazione venga aggiornata.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2004
    Messaggi
    178


    Allora:

    Ogni volta che un comando viene impartito al sistema tramite browser, carimento nuova pagina o altro, aggiorno il campo creation_date con la data corrente.

    Ritenete sia giusto fare così o esiste una maniera più ordinata?

    L'istruzione per aggiornare la pagina la metterei all'inizio di ogni pagina protetta, pensate sia corretto?
    Magari evito che la "stessa" pagina ricaricata possa aggiornare la data.
    Boh, aspetto suggerimenti :master:

  6. #6
    Si, devi mettere il codice per aggiornare la data all'inizio di ogni pagina èprima di fare qualsiasi operazione. Anche se l'utente magari non è autorizzato a vedere una determinata pagina, infatti, cmq ha eseguito un operazione e quindi significa che sta ancora navigando nel sito.

    Per la seconda domanda la risposta è no: non c'è una maniera più ordinata.
    Magari potresti ordinare il tutto creando una funzione apposita.

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.