Session Timer beenden, wenn Seite verlassen wird

04/03/2018 09:48 Cc_Cc_Cc#1
Hallo,

ich wollte in meiner Homepage etwas einstellen. Unzwar sobald ein Besucher ein Userprofil besucht, soll ein Timer gestartet werden. Sobald er verlässt soll ermittelt werden, wie lange er auf der Seite war und dies soll dann in die DB eingetragen werden. Mein Problem ist nur noch, wie ich es mache das ich den Timer beende, falls die Seite verlassen wurde.


Wie ihr seht, führt der Befehl: if(unset($_SESSION['timer'])) zu einem Error:

Wie kann ich es jetzt machen das, wenn die Seite verlassen wird, der Time beendet wird und der gespeicherte Inhalt (In meinem Fall $timeSince) in die DB geschrieben wird?

Oder wie würdet ihr es machen, um den Aufenthalt des Users herauszufinden, wie lange er auf einer Page bleibt?
04/03/2018 11:23 Serraniel#2
Ich würde es per Javascript in einem regelmäßigen Intervall den Server mit einem für den User und die Seite spezifischen Token anpingen und somit bestätigen, dass man noch da ist. Je kleiner das Intervall, desto genauer kannst du dann die Aufenthaltsdauer bestimmen. Alternativ kannst du auch mal Websockets anschauen, darüber hast du ebenfalls die Möglichkeit bidirektional Daten auszutauschen.
Frage ist nur wofür du das brauchst, Google Analytics und co sollten sowas eigentlich auch bieten können.
04/03/2018 11:30 Cc_Cc_Cc#3
Quote:
Originally Posted by Serraniel View Post
Ich würde es per Javascript in einem regelmäßigen Intervall den Server mit einem für den User und die Seite spezifischen Token anpingen und somit bestätigen, dass man noch da ist. Je kleiner das Intervall, desto genauer kannst du dann die Aufenthaltsdauer bestimmen. Alternativ kannst du auch mal Websockets anschauen, darüber hast du ebenfalls die Möglichkeit bidirektional Daten auszutauschen.
Frage ist nur wofür du das brauchst, Google Analytics und co sollten sowas eigentlich auch bieten können.
Jeder User hat eine Statistik-Page. Da kann er sehen, wie oft ein User ihn besucht hat und wie lange er drauf war (User werden natürlich anonym angezeigt). Ebenso soll ein Durchschnitt gerechnet wie lange sich die User auf der Seite des Users aufhalten. Deswegen brauche ich das und danke für den Tipp^^