Hi,
Bei Server B muss ich die Session-Id niemals an einen Link ranhängen, auch nicht, wenn ich Cookies ablehne.
Frage: welche Servereinstellung ist für dieses Verhalten verantwortlich?
session.use_trans_sid in Verbindung mit url_rewriter.tags
Und session.use_only_cookies überschreibt das ganze ggf.
http://www.php.net/manual/en/session.configuration.php
Und wie kann ich folgendes verhindern: Ein User logt sich bei mir ein, ich speichere die Loginzeit. Er setzt einen Link in den Lesezeichen. Er vergisst sich auszuloggen. Geht er nächsten Tag über diesen Link rein, ist er angemeldet, obwohl die Session längst abgelaufen sein müsste. Eine neue Loginzeit bekomme ich nicht erfasst. Das ist doof für meine Forumsfunktion: Beiträge seit dem letzten Login. Oder für anderes. Warum wird das Sessiontimeout auf diese Weise für den Nutzer umgangen?
PHPs Sessions haben kein "Ablaufdatum", sondern ein Mindeshaltbarkeitsdatum.
Die Einstellung session.gc_maxlifetime ist in der Hinsicht falsch benannt, da sie eigentlich eine minlifetime darstellt.
Der jeweils letzt Zugriff auf die Session-Datei wird hier zum Vergleich herangezogen, ob eine Session als "Garbage", Müll, angesehen wird. Wenn ja, darf der Garbage Collector sie wegräumen - der aber wird zufallsgesteuert aufgerufen. Du hast also nur eine Garantie dafür, wie lange eine Session-Datei mindestens verfügbar ist - aber kein Maximum.
Wenn du sowas willst, musst du es selber implementieren.
Wenn du bspw. den jeweils letzten Zugriffszeitpunkt in der Session hinterlegst, dann kannst du ihn mit dem aktuellen vergleichen. Und wenn dir die Differenz zu gross ist, dann den Nutzer auffordern, sich zuerst neu einzuloggen.
MfG ChrisB
Light travels faster than sound - that's why most people appear bright until you hear them speak.