Hi,
Ich möchte hier den Zusammenahang zwischen Session, Cookies und der Konst. SID erlaeutern.
Wäre schön, wenn du die Zusammenhänge wenigstens verstanden hättest.
Der Grund: in eimem anderen Thread zeigt sich, das die Funktion des Session Moduls scheinbar nicht ausreichend verstanden ist.
Hier zeigt sich, dass *du* noch einiges nicht verstanden hast.
Also: DEFAKTO (!) wird schon VOR der Ausführung des PHP Codes geprueft, ob der Client Cookies speichern kann. Defakto meint, dass bei der Abarbeitung des Codes schon beim ERSTEN AUFRUF DER SEITE bekannt ist, ob der Client Cookies akzeptiert und das Session Cockie gespeichert hat. Das klingt ein weinig unglaubwürdig, ist aber so.
Das ist nicht unglaubwürdig, sondern glatt falsch bzw. glatt gelogen.
- es drüfen nat. vor dem session_start() Befehle ohne Ausgabe abgesetzt werden; aber erst hinter dem session_start() lässt sich prüfen ob der Cookie Mechanismus funktioniert.
Nein, erst mit dem nächsten Request lassen sich darüber Schlüsse ziehen.
Wie funktioniert das? PHP ist eben clever! Wenn ein session_start() gefunden wird, und noch keine Ausgabe stattfand, dann veranlasst PHP der WWW-Server das Cookie auf den Client via HTTP-Header zu setzten. Der WWW-Server gibt dann Rückmeldung an den PHP-Interpreter.
So ein Humbug.
Der Server gibt keinerlei „Rückmeldung“ an dieser Stelle.
Ob das Cookie setzen erfolgreich war, teilt PHP über die Konstante SID mit, Wer den Mechanismus verstehen will, sollte also auf seinem Client einfach die Cookie Akzeptanz ein aus ausstellen und mit session_start() und SID spielen - man vesteht dann sofort wie das ganze funktioniert.
Du offenbar nicht.
Randbemerkung: über session_start() und SID lässt sich auch generell elegant prüfen, ob ein Client Cookies akzeptiert oder nicht!
Erstens Nein, und zweitens wäre das ganz und gar nicht elegant, eine Session ausschliesslich dafür zu starten.
Bevor du jetzt mit viel „ja, aber ...“ kommst, tu dir selber bitte den Gefallen, und informiere dich, und versuche selber zu verstehen, wie Sessions im Allgemeinen und bei PHP im Speziellen funktionieren.
Dein Versuch, dies anderen erklären zu wollen, ohne dass du es selbst verstanden hast, ging erwartungsgemäß in die Hose.
MfG ChrisB
“Whoever best describes the problem is the person most likely to solve the problem.” [Dan Roam]