Hallo Gonzo!
Das ist unnötig. Es reicht völlig, wenn du die Daten in $_SESSION löschst, und ich vermute, dass sich dann auch dein Problem löst.
[…] Von einer neu ausgewürfelten Kennung hast du jedenfalls nichts, eine alte ohne bzw. mit gelöschten Daten ist genauso gut wie eine frische, neue.
Mhm. Wie gesagt hatte ich mir vorgestellt, dass das System sicherer wird, wenn sich die Session-ID in bestimmten Intervallen verändert. Das würde ja nach genau diesem Intervall weitergegebene Links mit SID entschärfen. Wenn das allerdings Quatsch oder unmöglich sein sollte, natürlich nicht …
Die Kennung ändert sich prinzipbedingt immer erst von einem Aufruf zum nächsten, d.h. erst wenn sie vom Server zum Browser und dann wieder zum Server zurück kommt, kann man davon ausgehen, dass die Änderung auf allen Seiten vollzogen ist. Auch wenn ich auf den ersten Blick keinen Grund sehe, habe ich diese Eigenart in Verdacht, dein Problem auszulösen.
Schon, hier geht es aber ja darum, dass selbst der Server nicht die neue ID zu verwenden schein – dass sie beim Klienten erst nach einem neuen Aufruf ankommt, ist mir klar.
Aber schematisch passiert ja das bei mir (alles innerhalb eines Skripts und eines Aufrufs):
-> Session-ID: ABC
-> Löschen der Session
-> Starten einer neuen Session
-> Session-ID: _immernoch_ ABC
Neuer Aufruf mit im vorigen Aufruf per URL übergebener Session-ID
-> Session starten
-> Session-ID: CBA (also jetzt erst anders)
-> Variablen der vorigen Session natürlich auch nichtmehr verfügbar weil neue Session-ID
Durch eine RewriteRule befindet sich die Session-ID beim Aufruf natürlich schon im Querystring, wo sie hingehört.
Wenn sie dahin gehört (was vollkommen richtig ist), warum wird sie dann erst vom Server dorthin befördert? Sich ändernde Parameter gehören immer in den, Überraschung, Parameterteil der URL, auch und gerade dann, wenn die URL von externen Stellen verarbeitet wird (hier: Browser).
Ja, da hast du Recht. Irgendwie habe ich das vor lauter Gedanken an Clean URIs aus den Augen verloren. Da muss ich mal schauen, ob und wie ich das umstrukturiere.
Gruß,
Claudius