Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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

Geschrieben

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.

Geschrieben

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.

Geschrieben

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

Geschrieben

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!!!

Geschrieben

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.

Geschrieben
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.

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...