Moin!
Also das Session-System von PHP basiert überhaupt nicht auf Cookies.
Diese Aussage ist falsch.
Man kann zwar dieses System mit Cookies ersetzen, dies bringt jedoch einige Nachteile gegenüber der ersteren Variante. Die Sache mit den Sessions basiert darauf, dass an die URI noch etwas angehängt wird, nämlich die sehr lange SessionID.
Und diese ist halbwahr.
PHP nutzt primär Cookies, um die Session-ID zu transportieren. Als hilfsweise Alternative bietet es an, die Session-ID auch in der URL zu transportieren. Was genau geschieht, kann man konfigurieren. Standard ist, Cookies zu verwenden und die URL-Methode als Hilfsmethode immer mitzuverwenden.
Das sieht dann so aus, dass die erste Seite, auf der eine Session gestartet wird, ein Cookie setzt und alle Links und Formulare mit der Session-ID anreichert. Die nächste aufgerufene Seite erkennt, ob ein Session-Cookie zurückgeschickt wurde - in diesem Fall wird auf das Anhängen der Session-ID in der URL verzichtet. Wird kein Cookie festgestellt, verhält sich PHP wie bei der ersten Seite: Das Cookie wird wieder gesetzt, und alle Links enthalten die Session-ID.
Ein User, der sich bei jedem gesetzten Cookie informieren läßt und fallweise entscheidet, wird also auf jeder neu aufgerufenen Seite so lange mit der Cookiemeldung genervt, bis er das Cookie entweder akzeptiert (ab dann surft er ohne Session-IDs in der URL) oder dauerhaft ablehnt (dann sieht er nur die Meldung nicht mehr, PHP versucht aber weiterhin, das Cookie zu setzen).
- Sven Rautenberg
"Love your nation - respect the others."