phpbar.de logo

Mailinglisten-Archive

[php] Session automatisch beenden, wenn Fenster geschlossen wird

[php] Session automatisch beenden, wenn Fenster geschlossen wird

Ernst May-Jung mailing at may-jung.de
Mon Feb 9 14:10:25 CET 2004


>   wie kann ich erreichen, dass eine Session beim Schliessen des
>   Browserfensters automatisch zerstört wird? Ich habe das Gefühl, den
>   Wald vor lauter Bäumen nicht zu sehen...

Wenn die Session nicht als Cookie gespeichter wird sollte sie das eigentlich 
tun.

Da ich sebst die Sessinverwaltung nicht so detaiiet kenne, mache ich meistens 
meins Sessions selbst und schreibe meine Variablen serialisiert in ein großes 
Datenbankfeld:

sid  		int
ip		vchar(15)
session	text
zeit		timestamp.

Dazu generiere ich mir eine Session-id und schreibe die IP-Nummer auch noch in 
die Datenbank, dass heist, der Verlust der Session-ID führt zum erlöschen der 
Session.

Problem: In der Browser History ist die ID gespeichert!

Workaround: Timstamp läuft irgendwann ab:
$q = "UPDATE user SET ip=0, sid=0 WHERE now()-zeit > 9000"


und damit der User sich nicht ständig neu einloggen muss:
$q= "UPDATE user SET zeit=NULL, session=" . serialize($session) . " WHERE 
sid=$sid";

zeit=NULL setzt den timestamp automatisch neu. So wird MySQL-Zeit und PHP Zeit 
nie vermischt und kann auch nicht zu Problemen führen.

Gruß
    Ernst
 



php::bar PHP Wiki   -   Listenarchive