Hallo lachesis,
zu Deinem Problem gibt es lange Threads im Archiv. Da HTTP ein zustandsloses Protokoll ist, hast Du keine sichere Möglichkeit festzustellen, wann der Nutzer Deine Seite verlässt.
Lesenswert dazu:
http://www.php-faq.de/q/q-code-user-online.html
http://www.php-faq.de/q/q-phplib-reloads.html
Ich habe in meiner Session zwei Werte, wann die Session begonnen wurde, und wann der User das letzte mal etwas gemacht hat, also eine Seite aufgerufen hat. Da bei mir im Script nicht viel am Stück zu lesen ist, habe ich einfach festgelegt, dass nach 5 Minuten Inaktivität die Session verfällt.
--8<----*snipp*---->8---
session_start();
isset( $_SESSION['sess_start'] ) ? NULL : $_SESSION['sess_start'] = time(); # Session eroeffnet wann?
isset( $_SESSION['sess_last_use'] ) ? NULL : $_SESSION['sess_last_use'] = time(); # Letzte Verwendung
if( $_SESSION['sess_last_use'] + (5 * 60) < time() ) { # Session verfällt fuenf Minuten nach letzter Nutzung
$this->debug( 'info', 'Session verfallen' );
--8<----*snipp*---->8---
} else {
$_SESSION['sess_last_use'] = time();
} # end of if( $_SESSION['sess_last_use'] + (5 * 60) < time() )
--8<----*snipp*---->8---
Gruss, Thoralf
Sic Luceat Lux!