allora temo che di pronto non ci sia granchè.Originariamente inviato da Shores
(...)
Pagina speciale per ajax:
Supponiamo di caricare questa pagina alle 9:20: per poter leggere/modificare qualsiasi informazione dalla sessione devo fare session_start, giusto? Se lo faccio... la sessione scadrà alle 10:20, ed è proprio questo che NON voglio! Io vorrei che questo caricamento di pagina NON cambiasse la scadenza e la lasciasse alle 10:10 come era prima! Quindi, in questa pagina speciale NON posso fare session_start fino a quando non ho già letto in un altro modo quando scadeva la sessione, e non ho quindi già fatto session_set_cookie_params (che infatti da manuale php va sempre eseguita PRIMA di session_start) per dire a php che voglio che la sessione duri questa volta solo 50 minuti, così da fare in modo che continui a scadere alle 10:10...
Puntualizziamo anche che non volevo dovermi scrivere io un sistema che si preoccupi di fare session_destroy se ritengo che la sessione sia scaduta, vorrei continuare ad usare i meccanismi di php per questo, che sono robusti e testati; è evidente che se volessi potrei mettermi a gestire io in toto la "pseudo-scadenza" della sessione, ma significherebbe che in realtà la vera sessione gestita da php potrebbe rimanere latente per un bel po di più di quello che è la mia necessità, visto che verrebbe distrutta solo la prima volta che il mio codice che fa session_destroy viene eseguito dopo la mia pseudo scadenza: per capirci, se facessi come mi proponete, potrei avere una sessione ancora esistente ben dopo che il mio timeout personale è scaduto...
adesso ho capito un po' meglio: sempre nella possibilità di mettere un minimo le mani al codice...
aggirerei la cosa così: nelle SOLE pagine NON AJAX incrementi il valore del timeout della variabile di sessione.
poi nei DUE tipi di pagine, fai il controllo di validità della sessione.
in questo modo le pagine ajax non andrebbero ad aggiungere minuti alla scadenza della sessione, CHE VIENE DISTRUTTA (O MENO) DOPO IL CONTROLLO DELLA VARIABILE DI SESSIONE.
Guarda che è più difficile da dire che da fare...![]()
ciao,
stefano