Zurück   Flashforum > Flash und Server > PHP und MySQL

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 08-09-2011, 16:48   #1 (permalink)
Neuer User
 
Benutzerbild von jkd74
 
Registriert seit: Aug 2010
Ort: Frankfurt a.M.
Beiträge: 5
Session beenden beim Verlassen der Seite

Hallo,

ich habe einen kleinen einfachen Loginbereich zum testen erstellt.
Da arbeite ich z.Z. ausschließlich mit Sessions, zum lernen.
Loginüberpfrüfung, Session starten, Werteübergabe, Werte weiterverarbeiten, Loggen usw... und schließlich das Leeren und Zerstören der Session funktioniert auf "normalem" Weg bestens.
Wenn ich jedoch nicht über den Logout die Seite verlasse, sondern einfach das Browserfenster/tab schließe, und nun die Seite erneut aufrufe, wird die Seite erneut mit allen Daten aufgerufen, weil die Session (und deren Werte) noch vorhanden ist.
Gibt es eine Möglichkeit, die Session beim Verlassen der Seite zu leeren/beenden?
jkd74 ist offline   Mit Zitat antworten
Alt 08-09-2011, 17:01   #2 (permalink)
·
 
Benutzerbild von pilzebub
 
Registriert seit: Oct 2003
Ort: ··
Beiträge: 722
PHP: session_destroy - Manual
PHP: session_unset - Manual

oder einfach $_SESSION['deinName']='';
pilzebub ist offline   Mit Zitat antworten
Alt 08-09-2011, 17:07   #3 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
mal eine logische Frage dazu, woher weiss/erkennt der Server, wann der Benutzer die Seite verlassen hat? Und wie unterscheidet der Server, ob der Benutzer die Seite verlässt, oder ob er nur diesen Tab schliesst?

imho gibt es keinen sicheren Weg das festzustellen.

Aber das Session-Cookie wird automatisch beim schliessen des Browsers gelöscht => Benutzer öffnet den Browser erneut == neue Session.

2. schliesst der Server eine Session, nach einer vordefinierten Zeit, ohne neue Requests => auch hier wird eine neue Session geöffnet, wenn der Benutzer die Seite erneut aufruft.
Wie lange der Server wartet, bevor er eine Session schliesst, kannst du einstellen.

Das einzig sichere ist letztlich, wenn dein Benutzer die Session per logout schliesst.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Alt 09-09-2011, 13:42   #4 (permalink)
exestiert hier nicht
 
Registriert seit: Jun 2002
Ort: Osnabrück
Beiträge: 1.728
Zitat:
Zitat von thomas_E Beitrag anzeigen
mal eine logische Frage dazu, woher weiss/erkennt der Server, wann der Benutzer die Seite verlassen hat? Und wie unterscheidet der Server, ob der Benutzer die Seite verlässt, oder ob er nur diesen Tab schliesst?
Hi, eine genaue Antwort weiß ich da auch nicht, ich könnte mir aber z.B vorstellen das es über den Port geht.

Wenn man zum ersten mal auf eine Seite kommt, werden Daten vom Clienten zum Server über den Port 80 geschickt. Auf dem Rückweg vom Server zum Clienten geht es z.B. über Port 1999. Öffnest du nun einen anderen Browser geht die Rückübertragung über den Port 1998. Also über einen anderen Port.

Wenn nun ein Tab geschlossen wird, und der Server die Verbindung zum Browser über 1999 noch aufrecht erhält, wird die Session nicht gelöscht, da der Browser noch offen ist. Wenn nun der Browser komplett geschlossen wird fällt diese Verbindung weg. Es könnte sein dass beim nächsten Verbindungsaufbau zwischen Server und Clienten dies überprüft wird. Jeder Browser Session hat ja auch einen anderen Port für die Verbindung zwischen Server und Clienten. Auf dem Hinweg geht alles über Port 80 raus zum Server.

Ich vermute, dass diese Techniken auch intern dafür genutzt werden um Sessions neu zu erstellen. Die eigentlichen Dateien der Session lassen sich auch nach dem schließen des Browsers im Temp-Verzeichnis auf dem Webserver finden. Sprich diese werden nur über die Zeit gelöscht.

Ich hoffe das hilft dir weiter.
__________________
<? if(!$success){ $try++; } ?>
~Es ist so grausam, dass der Intelligenz Grenzen gesetzt sind und der Dummheit keine.~

Werbung:
- Ajax File Manager ( KFM - Kae's File Manager )

Geändert von Funkey (09-09-2011 um 13:44 Uhr)
Funkey ist offline   Mit Zitat antworten
Alt 09-09-2011, 14:15   #5 (permalink)
Keine Panik
 
Registriert seit: Apr 2010
Ort: Düsseldorf (im ernst)
Beiträge: 1.868
@Funkey, diese Fragen waren eigentlich für jkd74, geacht in dem Sinne: denk mal darüber nach.

ich denke das hier ist eher ein Logisches, als ein technisches Problem. Wenn er für sich (und uns) definieren kann wann ein User die Seite verlassen hat, können wir ihm helfen dass zu implementieren.
und dass es ein paar "Stolpersteine" beim ausformulieren dieser Bedingungen geben kann wie bspw. das schliessen eines Tabs bedeutet nicht zwangsläufig, dass da nicht noch mehr Tabs mit der Seite offen sind.

Das einzige wirklich technische "Problem" bei der ganzen sache ist, dass der Server nicht auf den Client gucken kann. (und das ist gut so)

Das mit dem Port, würde ich höchstens in Verbindung mit der IP in betracht ziehen, als Sicherheitsmassnahme (bist du immer noch der der du bist?), aber auch dass kann Probleme bereiten, da die meisten Internet-Verbindungen dynamische IPs haben und sich diese (so unwahrscheinlich es auch sein mag) auch während der Benutzung ändern können (Zwangstrennung bei DSL bspw)

Session Cookies werden eh beim schliessen des Browsers gelöscht, damit wird beim erneuten Öffnen eh eine neue Session angelegt (auch wenn die alte aufm Server noch nicht abgelaufen ist)

Zitat:
Ich vermute, dass diese Techniken auch intern dafür genutzt werden um Sessions neu zu erstellen.
glaub ich nicht. das wäre so, wie wenn deine Bank/Krankenkasse/... deine Briefe nur dann akzeptieren würde, wenn der Brief vom selben Briefkasten geschickt, und vom selben Briefträger geleert wurde; und ansonsten einen neuen Klienten anlegen würden.

ich schätze das läuft so:
  • nachsehen ob ein Session-Cookie gesendet wurde
  • prüfen, ob die dazugehörige Session noch aktiv ist
  • wenn ja: verlängere die ablauf-Frist für die Session
  • ansonsten: lege eine neue Session an und sende das Session-Cookie an den Client.
__________________
greetz Thomas

plz RTFM & Coding Conventions
thomas_E ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
swf-Aktion - beim Verlassen der Seite sar2000 Flash CS3 Professional 2 31-08-2008 23:05
Flash layer beim verlassen der Seite Pistol Pete Alternative Technologien 3 22-08-2006 13:19
Aktion beim Verlassen einer Seite ckm Flash MX 0 09-09-2005 19:58
Session unregister bei verlassen einer Seite bleier116 PHP und MySQL 6 22-07-2004 10:48
session soll bei verlassen der seite beendet werden urkman PHP und MySQL 9 11-05-2004 10:50


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:28 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele