oneside Geschrieben 4. März 2003 Geschrieben 4. März 2003 Hallo, ich habe folgendes Problem mit einem Passwortgeschützten Userbereich mit PHP: Ich habe einen Userbereich, bei dem beim Login eine Session mit dem aktuellen Benutzernamen und weiteren Daten anlegt wird. Wenn der Benutzer nun den Button 'Logout' betätigt, lösche ich die Beneutzer-Session. Wie kann ich aber abfangen, wenn der Benutzer das Browserfenster durch das Fenster-Beenden Symbol [X] beendet? Dann bleibt die Session auf dem Server, der Benutzer ist aber schon weg. Wie macht Ihr das denn? - Oneside - Zitieren
kathi008 Geschrieben 4. März 2003 Geschrieben 4. März 2003 hi, ich mach so: in einem bestimmten Zeitinterval(z.B. halbe Stunde) wird abgefragt,ob es irgendeine Session in der Datenbank gibt, die älter als Zeitinterval(halbe Stunde) ist. Wenn ja, dann wird diese gelöscht. Zitieren
oneside Geschrieben 4. März 2003 Autor Geschrieben 4. März 2003 Hallo kathi! Wie machst Du das, dass in einem bestimmten Zeitintervall automatisch eine Abfrage gestartet wird? Das kann Doch nur auf eine Useraktion passieren oder? - Oneside - Zitieren
progmaker Geschrieben 4. März 2003 Geschrieben 4. März 2003 Soweit ich weiß, hat jede Session eine bestimmte Lebensdauer und wird zerstört, wenn man län´gere Zeit nicht drauf zugreift. Wenn man das Browserfenster schließt, kommt man an die Daten nicht mehr ran. Oder hast du vor, die Daten zu speichern? Zitieren
oneside Geschrieben 4. März 2003 Autor Geschrieben 4. März 2003 Originally posted by Executioner Soweit ich weiß, hat jede Session eine bestimmte Lebensdauer und wird zerstört, Dann wäre das ja schon die Lösung für mein Problem! Oder hast du vor, die Daten zu speichern? Nein, es geht nur darum, dass ich sonst wenn die Session nicht gelöscht wird, irgendwann viele da sind, die gar nicht mehr in Benutzung sind. Ich möchte lediglich, dass alle nicht mehr benötigten entfernt werden, wenn sich ein User ausloggt. MFG - oneside - Zitieren
kathi008 Geschrieben 4. März 2003 Geschrieben 4. März 2003 hi, wenn du die Session nicht in der Datenbank abspeicherst, wird diese durch das Schließen des Fensters sowieso zerstört. Wenn du aber die Session zusammen mit den Userdaten in einer Datenbank speicherst, bleibt diese eben bis zum nächsten Aufruf der Seite enthalten. Beim nächsten Start der Seite oder Session werden alle Sessions in der Datenbank gelöscht, die älter als bestimmte Zeit sind. Zitieren
Net-srac Geschrieben 4. März 2003 Geschrieben 4. März 2003 Ich habe das mit einem Javascript gelößt, das auf ein onClose-Event ein 2. kleines Fenster öffnet, in dem das logout-script gestartet wird. Das einzige Problem, das diese Variante hat ist, das du nicht mitbekommst, wenn jemand einfach die Internetverbindung trennt, oder der clientrechner abstürtzt. Ich komme damit aber ganz gut klar. Hab das in einem Chat implementiert und hatte bisher in 2 Monaten nur einmal eine "leiche" drin. Zitieren
kathi008 Geschrieben 4. März 2003 Geschrieben 4. März 2003 und was machst du, wenn am Client der JavaScript nicht aktiviert ist? Zitieren
Net-srac Geschrieben 4. März 2003 Geschrieben 4. März 2003 Ok, du hast mich. Ist aber die einzige Lösung, da ich auf meinem Webspace keine Cron-Jobs laufen lassen kann um zu prüfen, ob ein client noch da ist. Aber deine Idee, mit dem Zeitrahmen ist auch nicht schlecht. Ich werd das bei gelegenheit mal umbauen. Thnx... Zitieren
oneside Geschrieben 4. März 2003 Autor Geschrieben 4. März 2003 Originally posted by kathi008 hi, wenn du die Session nicht in der Datenbank abspeicherst, wird diese durch das Schließen des Fensters sowieso zerstört. Das wusste ich nicht. Damit hat sich das eh dann schon erledigt. Vielen Dank für die schnelle Hilfe ! - Oneside - Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.