Originariamente inviato da mystica
ma in pratica come faccio a fare in modo che dopo questi secondi alcuni dati di alcune tabelle del database diventino spazzatura?
devo richiamare il session.gc_maxlifetime anche nei miei script?
Mi serve perchè vorrei che in un carrello, se l'utente rimane "fermo" e alla fine non compra nulla, dopo tot minuti il database si autopulisce.
Grazie!
Ciao,
la garbage collection delle sessioni (letteralmente "raccolta immondizie") elimina le sessioni marchiate come scadute.
Le sessioni vengono marchiate come scadute dopo che è trascorso il tempo session.gc_maxlifetime senza che siano state utilizzate.
La garbage collection però non interviene sempre e automaticamente (controllare ogni file di sessione ogni volta sarebbe un bel overhead) bensì con una probabilità regolabile in session.gc_probability , default 1/100.

In genere a quelle impostrazioni non si accede da PHP

1) Puoi regolare quella probabilità al 100% nel php.ini (ma te lo sconsiglio)
2) oppure puoi salvare le sessioni su db e allora anche se la regoli al 100% non c'è overhead

3) oppure fai da solo e quando un utente si connette salvi il momento dell'ultimo accesso su db e lo rinnovi ad ogni accesso, se per quell'utente (adesso - ultimo_accesso) > scadenza allora consideri l'utente out e elimini la sua sessione con session_destroy

Per identificare l'utente nel db puoi usare il suo id di sessione