Inizialmente credevo anch'io che i cookies venissero rinnovati di volta in volta, invece no: se imposti come durata di default del cookie 30 secondi, la sessione durerà comunque al massimo 30 secondi anche se non fai pause nella navigazione. Conclusione: si perde la sessione.Originariamente inviato da Archim3de
... praticamente ho capito ke se imposto il tempo di expire dei cookies x il mio sito, la sessione dovrebbe terminare entro quel tempo dall'ultima rikiesta al server web... giusto?
Invece i files sul server, dureranno il tempo stabilito nel php.ini ma hanno soltanto un x% di probabilità di essere eliminati.
Provo a riassumere questo "casino"
1) I file di sessione sul server vengono rinnovati ad ogni accesso purchè questo avvenga entro il tempo fissato in session.gc_maxlifetime MA potrebbero non venire eliminati mai anche se scaduti (dipende dalla probabilità in session.gc_probability), quindi indovinando l'id di sessione (oppure salvandolo tra i preferiti nell'url della pagina)la sessione potrebbe risultare eterna.
2) Se sono temporanei (session.cookie_lifetime=0) i cookies
mantengono il collegamento con la sessione fino alla chiusura della finestra del browser invece, se hanno una scadenza precisa, solo fino alla scadenza (che non viene rinnovata di volta in volta).
Se proprio li vuoi rinnovare, prima che scadano, forse lo puoi fare "manualmente" ma non ho provato...
<?
$si= session_id() ;
$scadenza= 600 ; //10 minuti in secondi
setcookie ("PHPSESSID",$si,time()+ $scadenza);
?>