Sessions, ausloggen 'loggen'

Hallo,

auf meiner Seite ist ein „Logout“-Button. Wenn man den drückt, wird eben die Logout-Routine durchgeführt, session_destroy() und pi pa po.

Was kann ich machen, wenn jemand sich nicht „richtig“ ausloggt wie vorgesehen, sondern einfach

a) ne andere Seite aufruft oder
b) den Browser schließt oder
c) eine bestimmte Zeit nichts in seiner Session macht?

Wie kann ich steuern, dass bei all diesen Situation trotzdem ein „Logout“ durchgeführt wird, also zum einen die Session beendet und zum Anderen meine Logging-Routine durchgeführt wird?

Vielen Dank für die Antworten.

MfG
Rogge

Wie kann ich steuern, dass bei all diesen Situation trotzdem
ein „Logout“ durchgeführt wird, also zum einen die Session
beendet und zum Anderen meine Logging-Routine durchgeführt
wird?

nur ueber eine „garbage collection“ in der du alle nicht ausgeloggten sessions selbst schliesst.

du musst die zu schliessenden sessions erfassen. oder - das ist ein hack - du hast sicheren und alleinigen zugriff auf session.save_path dann kannst du dort alle offenen sessions auslesen.

triggern kannst du das entweder ueber einen cronjob, oder - wenn du undeutlich sien kannst und abhengig von den kosten in rechenzeit - prinzipiell bei jedem 20. od. 100. seitenaufruf.

Die groesseren Systeme die ich kennengelernt habe schreiben sich eine extra Session-Information in eine extra Datenbank (z.B. welche Session-ID wann das letzte mal zugegriffen/geklickt haben) oder implementieren ein Session-System auf Basis der bereitgestellten PHP-Funktionen (siehe z.B. http://de.php.net/manual/de/function.session-set-sav…)

Gruesse
Stefan