Moin!
An den Link hat er ?PHPSID=.... drangehängt.
Bei der ersten Seite, die du von einem Skript abrufst, welches session_start() enthält, weiß dieses Skript noch nicht, ob dein Browser (oder du) das Cookie akzeptieren wirst, welches das Skript aufgrund von session_start() sendet.
Damit die Session also nicht verloren geht, sobald du die zweite Seite aufrufst, muß die Session-ID in jedem Fall an alle Links und in alle Formulare geschrieben werden. Mit trans_sid-Option geht das automatisch, aber es ist nicht unbedingt schön. Und es funktioniert bei gewissen anderen Mechanismen (z.B. Javascript) auch nicht.
Als ich F5 gedrückt habe, war es weg (kein ?PHPSID= mehr.
Wenn die zweite Seite geladen wird, schickt der Browser das gesetzte Cookie mit, sofern es tatsächlich gesetzt wurde. Das erkennt PHP und verzichtet künftig auf die Session-URL-Geschichte, sondern verläßt sich nur noch auf das Cookie. Dagegen ist im Prinzip nichts einzuwenden, das ist die beste Lösung.
Dann bin ich nochmal ins Adminmenü gegangen und dort war ?PHPSID= aufeinmal nicht mehr da (an der URL ;) ).
Logisch, weil ja jetzt der Cookie wirkt.
Als ich Cookies + Cache gelöscht habe, wurde die ?PHPSID= wieder an die URL drangehängt.
Weil der Cookie fehlte. Also ist der erneute Seitenaufruf ein "erster" Seitenaufruf im Sinne der Session. Und dir wird aufgefallen sein, dass die Session-ID gewechselt hat.
- Sven Rautenberg
"Beim Stuff für's Web gibts kein Material, was sonst das Zeugs ist, aus dem die Sachen sind."
(fastix®, 13. Oktober 2003, 02:26 Uhr -> </archiv/2003/10/60137/#m338340>)