Hi,
Wie ist denn der genaue Ablauf?
Beim Cookiesetzen für die Session wird geprüft, ob schon einer vorhanden ist.
Wenn keiner vorhanden ist, transsid erlaubt ist und Cookies ebenfalls, wird sowohl ein Cookie gesetzt, als auch das Rewriting der Seite vorgenommen für die transparente SID.
Beim erstmaligen Start der Session kann PHP noch nicht wissen, ob der Client Cookies akzeptiert oder nicht. Also wird zunaechst mal beides gemacht - Cookie-Header rausgeschickt, und SID an Links/Formulare angehaengt.
Kommt ein Request mit beidem, wird nach dem Sessionstart mit dem Cookie weitergearbeitet, kommt ein Request nur mit der tansparenten SID, wird damit weitergearbeitet. Wird dann trotzdem noch versucht, wieder ein Cookie zu setzen?
Kommt ein Request "mit beidem" zurueck, dann geht PHP davon aus, dass Cookies "funktionieren" - und verzichtet von da ab darauf, die SID in Links/Formulare mit einzuarbeiten. Der Sch(l)uss kann natuerlich nach hinten los gehen, wenn sich der Nutzer dann irgendwann "zwischendrin" entscheidet, ab da keine Cookies mehr akzeptieren, und damit auch keine mehr mit den kuenftigen Requests mitsenden zu wollen - dann hat PHP gar nichts in der Hand, um den Client zu identifizieren, und session_start beginnt damit eine neue Session. Aber der Fall ist in der Praxis wohl eher unwahrscheinlich - sowas "macht" der "normale" Nutzer nicht.
Ob PHP weiterhin versucht, Cookies zu setzen, wenn die Erkennung bereits ueber die Trans-SID laeuft, weiss ich gerade auch nicht.
(Obiges alles bezogen auf die Default-Einstellungen, die man mit aktuellen PHP-Versionen beim "Durchschnittshoster" antrifft. In PHP 6 wird bspw. session.use_only_cookies per Default auf 1 gesetzt sein.)
MfG ChrisB
"The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."