Zum Inhalt springen

SESSION-Problem


Empfohlene Beiträge

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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