Sönke Tesch: Cookie im laufenden Skript setzen

Beitrag lesen

Das klappt auch wunderbar. Allerdings nur, wenn ich vorher den Befehl PRINT im Hauptprogramm noch nicht benutzt habe. Ansonsten wird der Header "set-cookie..." wortwörtlich auf dem Bildschirm ausgegeben.

Was mache ich falsch? Worauf muss ich achten?

Eine HTTP-Antwort besteht in der Regel aus zwei Teilen: Dem Kopf ("header") und nachfolgend den eigentlichen Daten ("body"). Im Kopf werden Zusatzinformationen übertragen, zum Beispiel der MIME-Typ der übertragenen Daten, ihre letzte Änderungszeit oder eben auch Cookiedaten.

Da der Kopf _vor_ dem Körper übertragen wird, müssen auch die Cookiedaten _vor_ dem Körper gesendet werden. Wenn Du nun bereits Körperdaten gesendet hast, ist der Kopf schon raus und Du kannst keinen Cookie mehr setzen.

Entweder Du bringst es fertig und setzt Deinen Keks tatsächlich irgendwie vor allen anderen Ausgaben oder Du mußt Dich auf die Suche nach einem Cache-Mechanismus machen, so daß normale Ausgaben zwischengespeichert werden.

Gruß,
  soenk.e