Pogledaj session_set_save_handler funkciju, imaš tamo i primer. Ono na šta ti treba da obratiš pažnju je funkcija gc (ili garbage collector) koji u određenom intervalu (mislim da se interval prenosi kao parametar) skuplja sve expired sessions i briše ih.
Jednostavniji način je preko cookies, jednom sam to probao. U cookie čuvaš neku varijablu u kojoj je sačuvan timestamp zadnjeg pristupa (zadnje strane koju je video). Obično postaviš neku globalnu varijablu SESSION_LIFETIME a onda proveravaš na svakoj strani koju otvori da li je period od poslednjeg otvaranja do novo-učitane stranice manji od lifetime. Za ovo rešenje ti čak nije ni potreban session, a ja sam to koristio na jednom sajtu gde se zahtevalo da korisnici budu non stop aktivni, odnosno da imedju učitavanja 2 strane ne sme da prođe više od 10 minuta, ako je više - mora ponovo da se uloguje. Dešavalo se ipak da su neki imali problema sa ovakvim pristupom, jer im je pre svake strane izbacivao da moraju da se uloguju. To je uglavnom bilo za compuserve korisnike (ipak nije bilo puno takvih), a i dan danas ne znam zašto se to dešavalo (imali su cookies enabled)
Goran Pilipović fka bluesman