Hello,
setcookie muss wie alle HTTP-Header-modifizierenden Funktionen vor jeglichen Ausgaben aufgerufen werden. Zur Not kann man auch die Ausgaben mit Hilfe der ausgabesteuernden Funktionen abfangen.
Das ist so nicht _ganz_ richtig oder vollständig beschrieben.
Alle HTTP-Header müssen gesetzt sein, bevor die Response an den Client gesendet wird, denn die Header müssen dort vor dem ersten auszugebenden Zeichen vorliegen. Insofern bedeutet "Ausgabe" das Absenden der ersten Response-Bytes.
Allerdings kann man "Ausgaben" mittels echo auch schon vor dem Setzen von Headern mittels header() oder session_start() oder setcookie() machen, wenn man die _Absendung_ dieser Ausgaben zurückhält. Das kann mit ob_start() http://de3.php.net/manual/de/function.ob-start.php erreichen.
Dann würde erst alles gemeinsam am Scriptende oder bei einer anderen Output-Buffer-Funktion gesendet werden.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau