Ciao a tutti!
Sto preparando qualcosa anch'io sulle sessioni e tornando dalle vacanze scopro che il malefico Kuarl mi ha preceduto
Comunque prima di settembre non se ne fa nulla quindi inserisco qui alcune precisazioni.

- session_cache_limiter()
corrisponde all'omonima impostazione del php.ini e non serve a "limitare anche quante sessioni possono essere salvate contemporaneamente nella cache del server"

è un'impostazione che riguarda il client, ovvero il browser. Definisce la modalità di gestione delle pagine web che "contengono" sessioni da parte della cache del nostro browser.
Accetta come parametro una stringa e non numeri, normalmente è impostata a "nocache" (nessuna memoria nella cache). Non è chiaro quando sia utile impostare "private" o "public".

- session_cache_expire()
come funzione php è disponibile solo dalla versione 4.2 e corrisponde anch'essa ad un'impostazione del php.ini:
determina il tempo di vita nella cache del browser delle pagine che "contengono" sessioni. Default 180 MINUTI, sarebbero tantini per la validità della sessione sul server.
Questa impostazione è insignificante se session.cache_limiter=nocache

La validità della sessione sul server viene definita da
session.gc_maxlifetime (nel php.ini), di default 24 minuti.
gc sta per "garbage collection", ovvero dopo 24 minuti senza accesso al file di sessione quest'ultimo è "monnezza" e può essere eliminato.
Ovviamente se settiamo la vita del cookie di sessione (quello che ci rende riconoscibili al server) a
session.cookie_lifetime = 0 (default)
Il file di sessione sul server "scade" nonappena chiudiamo la finestra del browser.
Ovvero all'apertura di una nuova finestra il server non potrà più riconoscerci e ci assegnerà un'altro id di sessione.

L'impostazione che limita il proliferare di files di sessione sul server è

- session.gc_probability (default = 1)

Determina la probabilità, in percentuale, che si verifichi una pulizia dei file di sessione scaduti ogni volta che un utente accede ad una delle pagine del sito che "contengono" sessioni.
Perchè non impostare questa probabilità a 100%?
Perchè significa un sacco di lavoro per il server: verificare l'ultimo accesso a TUTTI i file di sessione ed eliminare quelli scaduti, e questo ad OGNI visita.
La probabilità a 1, limita soltanto un pochino la proliferazione dei file, eventualmente possiamo eliminarli "manualmente" a fine giornata.

Comunque possiamo anche fare in modo che php salvi le sessioni su db o su un unico file dbm, ma questo è un discorso lungo.
Volendo possiamo anche creare un sistema di sessioni tutto nostro (in stile phplib), perchè come abbiamo visto non si tratta di nulla di esoterico....anzi, a volte potrebbe essere addirittura conveniente quando non dobbiamo gestire grandi quantità di dati.
Ci sarebbero ancora un sacco di cose da dire ma spero di riuscirci a fine mese