Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329

    Riduzione "session.gc_maxlifetime" non funge, perchè?

    Salve , come da titolo, non capisco perchè non riesco a ridurre la durata di una session...
    In ogni pagina ho scritto

    Codice PHP:
    ini_set("session.gc_maxlifetime""3");
    session_start(); 
    ma non riesco a far scadere la sessione...anche inserendo ini_set("session.gc_maxlifetime", "0"); "ZERO" alla chisura della pagina, quando torno sul link, la sessione è ancora attiva.
    Come mai?

    Grazie.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  2. #2
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Beh, la sessione non viene cancellata magicamente, c'e' il garbage collector(gc) che si occupa di questo.

    E il garbage collector di default ha una probabilita' di avviarsi al inizio della sessione pari a 1/100. Di conseguenza, se per qualche stranissimo motivo hai bisogno di sessioni che durino 3 secondi, devi aumentare la probabilita' del gc, che e' definita dal rapporto tra session.gc_probability e session.gc_divisor.

    Con altre parole, fai:

    Codice PHP:
    ini_set("session.gc_maxlifetime""3");
    ini_set("session.gc_probability","1");
    ini_set("session.gc_divisor","1"); 
    e tutto funzionera' come ti aspetti.

    Ma tieni presente che in questo modo fai partire il gc ad ogni inizio sessione, cosa che si riflettera' inevitabilmente sulle prestazioni, in uno scenario con molti script/molte richieste. Non saprei se in modo grave; mai fatto cose del genere.

  3. #3
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Ok grazie....si in effetti non mi serve farla scadere in 3 secondi, volevo solo provare, per vedere se funzionava....quindi cmq se aumento, visto che c'è la prob. 1/100 , se si verifica questa possibilità scatterà il garbage che vedrà che il tempo di expire è più lungo, giusto?
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  4. #4
    Utente di HTML.it L'avatar di bubi1
    Registrato dal
    Dec 2009
    Messaggi
    1,230
    Esatto.
    Considera' che tutto dipende dal carico reale dal server in produzione. Io ad esempio metto la probabilita' a 1/1000. Perche' se ci sono molti siti/moltissimi script/moltissimi hit al secondo, sono sicuro che ogni 10-20 secondi almeno una volta mi parte il gc.
    Se invece avessi il sito su un server dedicato, e con un load misero, tipo qualche visita al giorno, ovviamente lo configurerei diversamente.

  5. #5
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da Donovant
    quindi cmq se aumento, visto che c'è la prob. 1/100 , se si verifica questa possibilità scatterà il
    garbage che vedrà che il tempo di expire è più lungo, giusto?
    Se sei su un server condiviso e usi le sessioni standard, aumentarlo non serve a niente.

  6. #6
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    Ma come faccio a far scadere la sessione rimanendo loggato nella pagina? (senza aver bisogno di chiudere il browser)
    Vorrei che dopo un po' di tempo, magari di inattività dell'utente, lo stesso si debba RI-loggare, come si fa per i sistemi di e-commrce, o altro.
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

  7. #7
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Metti le sessioni su db, così te le gestisci in autonomia e con precisione

  8. #8
    Utente di HTML.it L'avatar di Donovant
    Registrato dal
    Sep 2005
    residenza
    London
    Messaggi
    1,329
    E quindi dovrei fare ogni volta un confronto io? per capire se la sessione è scaduta anche se stanno navigando?
    Beati gli smemorati, perchè avranno la meglio anche sui loro errori...

    My gallery: http://donovant.deviantart.com/gallery/

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.