der header() befehl darf nur benutzt werden, wenn noch keine einziege andere ausgabe an den browser gesendet wurde, d.h. befehle wie print(),echo() etc oder nicht php-bereiche (html).
ich nehme an, dass hierschonmal irgendetwas gesendet wurde.Zitat
das ganze kann man am besten durch output buffering verhindern.
dafür machst du am anfang deines scripts einfach ein ob_start(). (auch vor jeder ausgabe)
dadurch wird alles, was gesendet wird, zwischengespeichert und erst ganz am ende des scripts wirklich gesendet. ist auch lustig in zusammenarbeit mit ob_get_contents() und ob_end(). aber das ist eine andere geschichte. ^^ kannst ja einfach mal bei www.php.net schaun. ist imho immer sehr hilfreich und informativ. ^^"
btw, ein tipp.
ich empfehle dir im location-header die volle addresse anzugeben, da manche browser relative angaben nicht verstehen. d.h. mach "Location: http://www.dein-host.de/index.php?shoutbox".
einfacher kannst dus dir z.B. durch die server-variablen machen, wie $_SERVER['irgendwas_mit_host']. den namen weiß ich jetzt nicht genau. mach einfach mal phpinfo(). dann siehst du die ganzen variablen.
und ich empfehle außerdem auch den reload nicht mit nem location-header zu machen sondern durch einen der das caching verhindertn. mal schaun... ah, hier.
dadurch wird die seite nicht gecacht. ich denke dann wird sie immer up-to-date sein...
das ist doch dein problem... oder? ^^"
whee.
ich habs auf php.net gefunden:
der beste location-code ist so:
hth. ich hab diesen post jetzt bestimmt mehr als 10mal editiert. xD