reimario Geschrieben 6. Juli 2005 Teilen Geschrieben 6. Juli 2005 Hi @ all, :floet: hab da mal ne kleine Frage, und zwar soll ich mich mit ein bissel mit SESSIONS auseinander setzen, das Problem is folgendes: Wenn ich mich einlogge wird eine Session gesetzt, und zwar in der Datenbank! Die Session wird natuerlich erst nach einem LOGOUT wieder aus der Datenbank geloescht... Ich soll mir ne Loesung ausdenken, wie man die Session am besten wieder aus der DB loescht wenn das Fenster einfach durch das "X" geschlossen wird!!! Es darf auch JavaScript sein :cool: Problem ist naemilich beim naechsten LOGIN wird zunaechst ueberprueft ob schon eine SESSION fuer diesen Benutzer besteht... Nu denn, wenn jemand eine Loesung weiss, dem waere ich sehr dankbar!!! :bimei Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TheyCallMeGeek Geschrieben 6. Juli 2005 Teilen Geschrieben 6. Juli 2005 hab mir selber ein sessionmanagement geschrieben, das auch erfolgreich auf einigen seiten läuft. ich habe einen timestamp wann die session das letzte mal benutzt wurde und ein timeout - alle die darüber sind, sind eh abgelaufen und werden gelöscht. das mache ich bei jedem aufruf (bei viel traffic haut das allerdings ein bischen auf die cpu - deswegen hab ich ein zufall von 1:10 eingebaut.) e'voila keine alten sessions in der db. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 6. Juli 2005 Teilen Geschrieben 6. Juli 2005 Du wirst von einem Browser niemals 100%ig mitbekommen, wann der User das letzte Fenster geschlossen hat. Ist so. Dazu zwingen auf einen 'Logout' Button zu drücken kannst du auch nicht. Das heisst die direkte Info "User hat sich ausgeloggt" wirst du nicht bekommen können. Es ist daher am einfachsten du setzt beim Login einen Timestamp auf den Log-Datensatz. Einmal pro Stunde/Tag/Woche/Jahr/... lässt du dann einen Abgleich über die Datenbank laufen, der alle Einträge löscht, die älter als X Stunden/Tage/... sind. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Amstelchen Geschrieben 6. Juli 2005 Teilen Geschrieben 6. Juli 2005 nachdem du nicht angegeben hast, welche scriptsprache du benutzt: zumindest in asp gibts die ereignisse Session_OnStart und Session_OnEnd, die in der global.asa definiert werden können. dort kann z.b. beim auftreten von Session_OnEnd (also wenn nach der standardzeit von 20 minuten die session gelöscht wird) - ein delete from in der datenbank gemacht werden - vielleicht kennt php was ähnliches, um sessioneinträge sauber zu entfernen. clientseitig allein ist das jedenfalls nicht machbar. s'Amstel Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
reimario Geschrieben 6. Juli 2005 Autor Teilen Geschrieben 6. Juli 2005 Also ich benutze PHP und JavaScript. Habe irgendwo gelesen dass es möglich ist, dass sich beim Schließen des Browser ein POPUP-Fenster für eine Sekunde öffnet (JavaScript)... Welches dann ein anderes Script (PHP) aufruft, welches dass dann den Eintrag löscht... NUr wie das Funktionieren soll... Keine Ahnung!!! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
the_lmich Geschrieben 7. Juli 2005 Teilen Geschrieben 7. Juli 2005 Und bei Popup-Blockern ist dennoch Feierabend. :-) Viele Grüße Torsten Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Aiun Geschrieben 7. Juli 2005 Teilen Geschrieben 7. Juli 2005 was ich nicht ganz verstehe, warum prüfst du beim Login ob schon eine Session existiert, wenn beim schließen des Fensters diese beendet werden soll ? bei einem neuen Login sollte die alte Session einfach überschrieben und somit beendet/gelöscht werden. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
perdian Geschrieben 7. Juli 2005 Teilen Geschrieben 7. Juli 2005 Habe irgendwo gelesen dass es möglich ist, dass sich beim Schließen des Browser ein POPUP-Fenster für eine Sekunde öffnet (JavaScript)... Welches dann ein anderes Script (PHP) aufruft, welches dass dann den Eintrag löscht...Natürlich gibt es diese Möglichkeit. Dass es nicht das eleganteste ist lassen wir einfach mal aussen vor, aber es ist wie jede clientseitige Operation: Du kannst nicht sicherstellen, dass sie tatsächlich ausgeführt wird - Punkt. Einfachster Fall: Was machst du, wenn ich JavaScript ausgeschaltet habe und/oder einen Popuop-Blocker verwende? Umgehen? Viel Spaß. Was machst du, wenn ich Lynx verwende? Was machst du, wenn ich eine Browser-Session nur simuliere? JavaScript und Co. bieten sicherlich sinnvolle Möglichkeiten, allerdings hören diese sinnvollen Möglichkeiten da auf, wo solche clientseitige Operationen serverseitige Logiken beeinflussen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
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.