Non ha senso parlare di durata della variabile, ma di durata della sessione.
Questa è determinata (come durata massima) dalle variabili su php.ini: session.gc_maxlifetime, session.gc_probability e session.gc_divisor.
I valori di default sono, rispettivamente, 1440, 1 e 100. Il che significa che dopo 1440 secondi (18 minuti) di inattività una sessione può essere cancellata dal garbage collector. Tuttavia la probabilità che il g.c. venga lanciato è 1/100 ad ogni chiamata (dipende dalle ultime due variabili).
Quindi in realtà non c'è mai la certezza che la sessione venga eliminata dopo tot tempo (a meno di non mettere le variabili realtive al g.c. a valori come 1/1 o 100/100).
Per quanto riguarda la chiusura del browser, normalmente coincide con la perdita della sessione, ma non necessariamente è così.
In questo caso si parla di "perdita" e non di cancellazione perché la sessione sul server rimane attiva, ma se il browser perde il cookie relativo non è più in grado di recuperarla. Ciò coincide con la chiusura della finestra quando la durata del cookie di sessione è "zero", cioè, appunto, "fino a chiusura del browser". Anche questo valore però è controllato da php.ini (session.cookie_lifetime). Se viene portato ad un valore superiore, il cookie verrà scritto su disco, e quindi l'eventuale chiusura del browser non avrà più effetto.

 
			
			 
			
 
					
					
					
						 Rispondi quotando
  Rispondi quotando