Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125

    session.gc_maxlifetime = 5 non fa nulla

    Ragazzi. Ho postato tantissime volte...ho cercato su questo forum, sulla rete, sui libri...probabilmente sono proprio tonto...Ma pesche questa cavolo di sessione c'e' sempre e io sono loggato nelle mie pagine anche se :
    1) ho messo session.gc_maxlifetime = 5 (deduco che dopo 5 secondi dovrebbe rimandarmi alla pagina di login....non so ancora se lo fara in automatico il redirect o se mi mandera' al click di un qualsiasi link della pagina in cui mi trovavo )
    2 ) ho riavviato apache e controllato che la modifica fosse realmente stata fatta.

    Beh raga...non combina niente...come faccio? devo modificare qualcos'altro....


    Poi domanda...se nella mia pagina c'e' un refresh temporizzato ogni 20 secondi....questo altera quella che viene chiamata inattivita? ossia , se lascio il mouse fermo ma la pagina si refresha da sola e' considerata cmq inattivita' e quindi mi fara' scadere la sessione?

    Aiuto pls.

  2. #2
    Chiaro che non fa nulla.

    Si limita a definire che la sessione e' scaduta. Se fai un refresh della pagina te ne accorgerai. Non puo' certo farti chiudere il browser.

    Se fai un refresh della pagina reinizializzi il time-out della sessione ovviamente. Questo time-out viene calcolato tra il tempo corrente ed il tempo dell'ultima apertura del file di sessione.

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

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    ok....forse pian piano ci arriviamo.
    Allora...in effetti prima ho sbagliato a scrivere...in realta' non e' la pagina che si refresha....ma 2 iframe contenuti in essa...quindi non dovrebbe reinizializzarsi il time out della session.

    Continuando a navigare ho pero' trovato questo :
    Anche il file dei dati di sessione è soggetto a scadenza, evento che accade dopo un determinato numero di secondi di inattività impostato dalla direttiva session.gc_maxlifetime del php.ini. Trascorso questo intervallo di secondi, il file viene considerato spazzatura (garbage) e sarà cancellato da una routine spazzina (garbage collector) che si attiva con una probabilità impostata dalle direttive session.gc_probability e session.gc_divisor. Poiché questa probabilità è impostata di default all'1% non è possibile fare affidamento sul garbage collector per la scadenza di una sessione poiché queste potrebbero venir cancellate molto tempo dopo il session.gc_maxlifetime impostato. Inoltre il garbage collector non elimina mai la sessione relativa allo script corrente, anche se questa è scaduta!

    Allora che dovrei fare???? mettere session.gc_probability a 100%???

    Cmq....niente....ho messo session.gc_probability = 100 e session.gc_maxlifetime = 5 e se dopo 10 secondi refresho,.....sono sempre loggato...

    ma come cavolo si fa=?

  4. #4
    Il file di sessione e' un file "vulgaris". Quindi porta con se l'ora di creazione e ultima modifica.

    Per stabilire se "il contenuto" del file e' ancora valido viene fatto il confronto tra:

    (ora attuale - session.gc_maxlifetime) > ora_modifica_file

    pero' il file esiste finche' il garbage collector non lo spazza. La sessione ha pure una sua vita lato CLENT che e' definita dal cookie di sessione. Questo cookie rimane attivo fino a quando il browser rimane aperto.

    Per essere logici si dovrebbe nel caso di uso personalizzato dei time-out come il tuo, impostare la durata della sessione allo stesso modo sia sul client che sul server. In altre parole se dai 5 secondi di vita al file dovresti dare anche 5 secondi al cookie.

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

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    grazie....penso che tu sia stato veramente chiaro.
    Ora provo nella speranza di riuscirci.

    ciao piero

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    ...scusa piero...ma cosa intendi per ...ora modifica file sessione?
    navigo e cerco ma non trovo dove prendere informazioni come data creazione sessione e data modifica.

    Ma per modifica intendi ...appena clikko un link viene modificata? altrimenti che senso ha?

    Se potessi essere un po piu chiaro ti sarei grato..purtroppo mi sono bloccato...


    grazie mille

  7. #7
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    up....qualcuno che mi aiuti?

  8. #8
    Ma dove stai andando? ... mica lo devi prendere tu l'ora di accesso al file... ci pensa session_start()

    Se per curiosita' lo vuoi vedere prova a leggerlo con "fileatime()"

    tu devi solo impostare i due timeout. uno per il cookie e l'altro per la durata di validita' in stato inattivo nel file php.ini oppure con ini_set(). tutto qui...


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

  9. #9
    Utente di HTML.it
    Registrato dal
    Jun 2005
    Messaggi
    2,125
    ok...mi sa che ho risolto.

    modificare :
    session.gc_maxlifetime
    session.cookie_lifetime

    e il gioco e' fatto....

    grazie piero. alla prox

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.