hi,
Deine header() Funktionen machen schon das was sie sollen, aber nicht das was Du willst, das ist das Problem. Schau dir mal die HTTP-Header an, die das Script ausgibt. header(refresh:...) ist ein Wrapper für header(location:...) und das Umleiten funktioniert nur, wenn vorher der HTTP-Header nicht abgechlossen wurde, was bei Dir offensichtlich der Fall ist, weil der Content-Type vorher schon ausgegeben wurde.
Rolf