Mailinglisten-Archive |
> 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