exciter: Fragen zu PHP-Sessions

Hi Leute da das Session-System von PHP zwar einfach zu benutzen ist aber auch seine Tücken hat (oft wenig Kontrolle) benutz ich für meine Seite ein eigenes mit Datenbank-Backend. Jetzt hab ich schon oft gesehen dass bei PHP-Sessions, sobald der Zurückbutton des Browsers benutzt wird oder von einer externen Domain auf die Seite zugegriffen wird eine Seite erscheint mit Meldung Seite nicht mehr gültig... usw.. Wie macht PHP das? Ist doch Sache des Clients (zumindest history.back), oder? Und wie beendet PHP eine Session wenn das aktive Browserfenster geschlossen wird? Hoffe ihr könnt mir weiterhelfen!

  1. Hallo,

    Jetzt hab ich schon oft gesehen dass bei PHP-Sessions, sobald der Zurückbutton des Browsers benutzt wird oder von einer externen Domain auf die Seite zugegriffen wird eine Seite erscheint mit Meldung Seite nicht mehr gültig... usw.. Wie macht PHP das?

    Gar nicht. Diese Meldung wird ausgegeben, wenn Du ein Formular per POST im Internet Explorer abschickst, von dort aus einen Link öffnest und dann auf zurück gehst. Die Tatsache, dass Sessions verwendet werden, ist unerheblich.

    Und wie beendet PHP eine Session wenn das aktive Browserfenster geschlossen wird?

    Die Session selbst wird nicht beendet, allerdings wird dem Browser mitgeteilt, dass er das Session-Cookie beim Beenden löschen soll. Daher kennt der Browser die Sesssion-ID nach einem Browserneustart nicht mehr. Alte Sessions bleiben noch einige Zeit auf dem Server selbst erhalten, bis der 'Garbage Collector' alte Sessions (d.h. Sessions, auf die Seit x Sekunden (Standardwert: 1440) nicht mehr zugegriffen wurde) automatisch entfernt.

    Viele Grüße,
    Christian

    --
    Losung und Lehrtext für Mittwoch, 8. Oktober 2003
    Ich werde nicht sterben, sondern leben und des Herrn Werke verkündigen. (Psalm 118,17)
    In allem erweisen wir uns als Diener Gottes: als die Sterbenden, und siehe, wir leben; als die Gezüchtigten und doch nicht getötet; als die Traurigen, aber allezeit fröhlich; als die Armen, aber die doch viele reich machen. (2.Korinther 6,4.9.10)
    (http://www.losungen.de/heute.php3, i.V. Götz)