onUnLoad - Befehl an DB senden?

ArFiBa

Erfahrenes Mitglied
Hallo Leute,

also ich hab folgendes Problem:
Ich speichere eine Session_ID für angemeldete User in der DB zur weiteren Verwendung nur bleibt diese auch erhalten wenn der User die Seite verlässt ohne auf logout zu klicken (was leider fast immer der Fall ist). Das stört einige Funktionen für die ich die ID verwende.

Jetzt meine Frage:
Kann ich mit onUnLoad oder etwas ähnlichem den Wert der Session_ID aus der DB löschen?

Hab’s über ein Popup versucht welches das PHP-Logout-Skript ausführt. Das bringt nur leider nicht wirklich was da die Popups sich bei jedem mit Popup-Blocker nicht öffnen.

Vielleicht hat einer von euch eine Idee.
 
Workaround:Lade ein Bild:-)

Hört sich vielleicht merkwürdig an, ist es aber nicht.
Javascript prüft ja nicht, ob ein Bild wirklich eine Grafik-Datei ist... für dich reicht es ja aus, wenn dein Logout-Skript aufgerufen wird:
Code:
x=new Image();x.src='logout.php';

Ich frage mich allerdings, wie du das genau vorhast:
Onunload feuert, wenn man die aktuelle Seite verlässt...dies ist auch der Fall, wenn ich innerhalb eines Projektes navigiere.... ich bleibe zwar da, werde aber ausgeloggt.
(oder arbeitest du mit Frames)
 
Sorry hab nicht grade viel Ahnung von Java. Was meinst du damit? Das anstatt die Popupfunktion oder wie?
 
Java musst du nicht einmal beherrschen. Definiere einfach oben beschriebenen Code als Attributwert des onunload-Attributs.
 
Code:
<body  onunload="new Image();x.src="logout.php";">

So ist warscheinlich falsch, oder? Es geht nämlich nicht.
 
Hi ihr 2 :),

versuche gerade obiges Problem in den Griff zu bekommen.
Nur leider habe ich festgestellt dass dieser kleine workaround im IE nicht funktioniert.

Im Mozilla klappt die Datenbankabfrage wunderbar. Hat jmd Rat warum es im IE nicht klappt?

Grüsse Alex
 
Ich befürchte, im IE wird das fenster bereits geschlossen sein, bevor die Anfrage an das PHP-Skript abgesetzt wurde.
Probiers mal im IE mit onbeforeunload.
Zur Not könnte man da den Benutzer fragen, ob mal kurz ein Popup mit dem PHP-Skript geöffnet werden darf.

Es könnte auch sein, das du an die Skript(Bildadresse) einen Timestamp oder Ähnliches anhängen musst, weil der IE es sonst beim wiederholten Aufruf aus dem Cache holt.
 

Neue Beiträge

Zurück