Werte nach Logout(Sessionende) speichern!?

Comunio

Grünschnabel
Hi Zusammen,

bin noch ziemlich neu bei php und ich habe mal eine Frage zur Sessionspeicherung.

Angenommen ich habe eine Variable welche die verstrichenen Sekunden seid dem letzten Login berechnen soll :

PHP:
$zeit=time() - Session $_SESSION["user_zeitstempel"]

So jetzt habe ich ja die Sekundenzahl in $zeit gespeichert. Wie bekomme ich es jetzt hin, dass bei Logout, Browserschließung oder Aktuallisierung dieser Wert automatisch in meiner DB gespeichert wird?

Kann ich dazu die Funktionen der Sessionbeendigung irgendwie erweitern oder wie geht man da am besten ran? Würde mich auch aus Sicherheitsgründen interessieren, was die "sicherste Möglichkeit" darstellt.

PHP:
<?php

ob_start (); 

session_start (); 
session_unset (); 
session_destroy (); 

header ("Location: login.php"); 
ob_end_flush (); 
?>

Für Eure Hilfestellungen schonmal vielen Dank
 
Bei Browserschließung kannst du nichts machen, ebensowenig wie bei Aktualisierung etc....
was du machen kannst ist dir einfach eine eigene Funktion zu machen:

PHP:
function logout($session_id) {
mysql_query("INSERT INTO tabelle (variable1, variable2) VALUES('".$_SESSION['ding1']."', '".$_SESSION['ding2']."')");
session_destroy();
}

Ob man mit JS etwas derartiges machen kann (überprüfen ob der Browser gerade geschlossen wird) weiß ich nicht, bin mir aber ziemlich sicher dass es nicht geht...
Wenn es geht kannst du ja per AJAX einfach dem Server den Auftrag geben, die Daten zu speichern... Wie -> ka, das sollte aber nicht das Problem sein...


mfg
 
Das lässt sich wie das Wer-ist-online-Problem lösen: speichere einfach den Zeitpunkt jeder Aktion der Benutzer.
 
Danke für eure Antworten, aber ich denke ich hab die Lösung!

Ich denke ich werde einfach alles über time() managen. Ist ja das einfachste. So kann es mir total egal sein, wann wer seinen Browser zu macht, da beim mächsten start ich ja neu berechne! Argh

Danke Desert-hacker und Gumbo für den Denkanstoß!!

mfg
 
Zurück