Salut
Das geht nur mit einem clientbasierenden Script wie z.B. JavaScript. Denn wenn die Seite vom Server an den Client geschickt wurde ist diese Sache für PHP gegessen.
Nur ein Javascript, das beim Schliessen des Browserfensters die zu löschende Session an deine Seite meldet kann dies tun.
Leider aber kann man JS bekannterweise deaktivieren und somit läuft der ganze Aufwand ins Leere...
Die "beste" Lösung dürfte aber dem Ansatz von kapitaeniglo folgen:
Die Session würde ich in eine DB eintragen. Zusammen mit einer Ablaufzeit für die Session und allenfalls die IP. Bei jedem Klick auf einen Link prüft ein Script auf dem Server ob die Session gemäss DB noch gültig ist und passt in diesem Falle die Ablaufzeit an. Oder sie verweigert den Aufruf der Seite und kickt die Session aus der DB.
Wenn du dann noch Cronjobs hast, dann kannst du dir ein Clean Script für die DB basteln, welches in bestimmten Intervallen alle abgelaufenen Sessions aus der DB löscht.
Ich denke die Sache mit der Session weiterreichen dürfte die sicherste Sache sein. Denn Cookies, da sie beim Client gespeichert werden, könnten verändert werden. Und was machst du wenn der User die Cookies deaktiviert hat ?
Gruss
tobi
Original geschrieben von Trompetenkaefer
dass die sessionid beim schließen des browsers verfällt ist klar, aber wie lass ich sie parallel dazu auch ind er datenbank verfallen ???
dass die sessionid beim schließen des browsers verfällt ist klar, aber wie lass ich sie parallel dazu auch ind er datenbank verfallen ???
Nur ein Javascript, das beim Schliessen des Browserfensters die zu löschende Session an deine Seite meldet kann dies tun.
Leider aber kann man JS bekannterweise deaktivieren und somit läuft der ganze Aufwand ins Leere...
Die "beste" Lösung dürfte aber dem Ansatz von kapitaeniglo folgen:
Die Session würde ich in eine DB eintragen. Zusammen mit einer Ablaufzeit für die Session und allenfalls die IP. Bei jedem Klick auf einen Link prüft ein Script auf dem Server ob die Session gemäss DB noch gültig ist und passt in diesem Falle die Ablaufzeit an. Oder sie verweigert den Aufruf der Seite und kickt die Session aus der DB.
Wenn du dann noch Cronjobs hast, dann kannst du dir ein Clean Script für die DB basteln, welches in bestimmten Intervallen alle abgelaufenen Sessions aus der DB löscht.
Ich denke die Sache mit der Session weiterreichen dürfte die sicherste Sache sein. Denn Cookies, da sie beim Client gespeichert werden, könnten verändert werden. Und was machst du wenn der User die Cookies deaktiviert hat ?
Gruss
tobi
Kommentar