Hallo,
dein Problem dürfte der Header sein, den Du am ende sendest. Bekanntlicherweise darf VOR einem header() Aufruf - NULL - Ausgabe erfolgen, nicht mal ein Leerzeichen oder eine Leerzeile. Da Du den Header im Body sendest, hat dieser natürlich keinen Effekt, nur den einen, einen Fehler.
Schreib mal "error_reporting(E_ALL);" an den Anfang der Seite, dann siehst Du das Übel.
Weiteres zur Funktion Header: php.net/header