Discussione:
Problema con scadenza sessioni
(troppo vecchio per rispondere)
Cooper
2008-12-21 16:54:27 UTC
Permalink
Ciao a tutti,
ho un problema riguardo alla scadenza delle sessioni.
Cercando con google, ho visto che una sessione scade alla chiusura del
browser (è capito correttamente? potete confermarmi?) ora però ho visto
anche che ogni sessione per default (php.ini) ha una durata massima (che può
essere cambiata) di 180 minuti.
Considerando la durata massima della sessione di 180 minuti come da default,
cosa succede se il browser rimane aperto oltre i 180 minuti?
Cioè, la sessione scade? Oppure la sua scadenza è prorogata fino alla
chiusura del browser?
Il mio obiettivo è fare in modo che la sessione scada SOLTANTO alla chiusura
del browser, indipendentemente dal fatto che esso possa rimanere aperto 90,
180 o 270 minuti e cosi via.
Se la scadenza della sessione avviene prima della chiusura del browser e al
compimento del ciclo di vista della stessa impostato per default in php.ini,
come posso evitare ciò per soddisfare la condizione di prima?
Grazie per il vostro aiuto e auguri di buon Natale a tutti.
Cooper.
Alessandro Pellizzari
2008-12-21 17:57:22 UTC
Permalink
ho un problema riguardo alla scadenza delle sessioni. Cercando con
google, ho visto che una sessione scade alla chiusura del browser (è
capito correttamente? potete confermarmi?)
Si`, ma solo perche` il cookie di sessione nel browser e` in RAM e non su
disco.
ora però ho visto anche che
ogni sessione per default (php.ini) ha una durata massima (che può
essere cambiata) di 180 minuti.
Questo lato server. Se quel cookie di sessione non viene usato per piu`
di x minuti (180 nel tuo caso), vengono cancellati i file in /tmp (o
equivalente, in base alla config)
Considerando la durata massima della sessione di 180 minuti come da
default, cosa succede se il browser rimane aperto oltre i 180 minuti?
Se rimane aperto ma non richiede altre pagine di quel sito, la sessione
scade. Ad ogni pagina che richiede col cookie di sessione, PHP resetta il
countdown.
Cioè, la sessione scade? Oppure la sua scadenza è prorogata fino alla
chiusura del browser?
Il server non sa niente del browser. Vedi sopra.
Il mio obiettivo è fare in modo che la sessione scada SOLTANTO alla
chiusura del browser, indipendentemente dal fatto che esso possa
rimanere aperto 90, 180 o 270 minuti e cosi via.
Allora impostala a qualche mese di vita. :)

Bye.
Cooper
2008-12-21 18:20:01 UTC
Permalink
Post by Alessandro Pellizzari
ho un problema riguardo alla scadenza delle sessioni. Cercando con
google, ho visto che una sessione scade alla chiusura del browser (è
capito correttamente? potete confermarmi?)
Si`, ma solo perche` il cookie di sessione nel browser e` in RAM e non su
disco.
ok perfetto
Post by Alessandro Pellizzari
ora però ho visto anche che
ogni sessione per default (php.ini) ha una durata massima (che può
essere cambiata) di 180 minuti.
Questo lato server. Se quel cookie di sessione non viene usato per piu`
di x minuti (180 nel tuo caso), vengono cancellati i file in /tmp (o
equivalente, in base alla config)
capito
Post by Alessandro Pellizzari
Considerando la durata massima della sessione di 180 minuti come da
default, cosa succede se il browser rimane aperto oltre i 180 minuti?
Se rimane aperto ma non richiede altre pagine di quel sito, la sessione
scade. Ad ogni pagina che richiede col cookie di sessione, PHP resetta il
countdown.
non ho capito bene, però se io faccio un refresh della pagina, il countdown
viene azzerato? Cioè per esempio se faccio il refresh della pagina ogni 60
minuti e la sessione scade dopo 3 ore, anche se lascio browser aperto per 4
ore, ho la garanzia che la sessione non sia scaduta?
Post by Alessandro Pellizzari
Il mio obiettivo è fare in modo che la sessione scada SOLTANTO alla
chiusura del browser, indipendentemente dal fatto che esso possa
rimanere aperto 90, 180 o 270 minuti e cosi via.
Allora impostala a qualche mese di vita. :)
Uhm nel caso di risposta negativa all'uso del refresh, impostarla a 24 ore
ha controindicazioni per una media di 500 utenze nelle 24 ore (dove ad ogni
utente corrisponde una sessione)?

Grazie ancora.
Cooper.
Enrico Bassetti
2008-12-21 18:47:10 UTC
Permalink
Post by Cooper
Uhm nel caso di risposta negativa all'uso del refresh, impostarla a 24 ore
ha controindicazioni per una media di 500 utenze nelle 24 ore (dove ad ogni
utente corrisponde una sessione)?
Non so perché, ma io imposterei la cosa in modo che sia il browser a
dire che è ancora vivo, ergo AJAX o al limite iframe nascosto con pagina
che si aggiorna ogni X secondi/minuti/ore (dipende dalla scadenza della
sessione).

Enrico
Cooper
2008-12-21 19:04:58 UTC
Permalink
Post by Enrico Bassetti
Post by Cooper
Uhm nel caso di risposta negativa all'uso del refresh, impostarla a 24 ore
ha controindicazioni per una media di 500 utenze nelle 24 ore (dove ad ogni
utente corrisponde una sessione)?
Non so perché, ma io imposterei la cosa in modo che sia il browser a
dire che è ancora vivo, ergo AJAX o al limite iframe nascosto con pagina
che si aggiorna ogni X secondi/minuti/ore (dipende dalla scadenza della
sessione).
Il refresh della pagina quindi azzera il countdown della sessione?
Enrico Bassetti
2008-12-21 23:07:01 UTC
Permalink
Post by Cooper
Il refresh della pagina quindi azzera il countdown della sessione?
Ogni richiesta (inteso come refresh ma anche navigazione tra pagine
diverse) ad ogni pagina che contiene session_start(); , poiché tale
istruzione crea una sessione *oppure*, nel caso in cui ci sia già una
sessione aperta, la continua. Ovviamente il sistema della sessione è
basato sull'ID della stessa, che di solito viene impostato e gestito
tramite un cookie in automatico, ma che può essere sempre passato
tramite URL con la pseudocostante globale SID (non ricordo bene il nome,
ma dovrebbe essere quello; nel caso la pagina della documentazione di
it.php.net spiega la cosa in dettaglio).

Enrico

Loading...