ヘッダー機能を使用することはできません。その目的はヘッダーを送信することであり(ユーザーをリダイレクトするだけでなく)、出力が開始されたときに遅すぎるためこれを行うことはできません
簡単な解決策の 1 つは、これに JavaScript を使用することですが、これは「エレガントな」解決策ではありません。また、訪問者が JavaScript を無効にしている場合や、JavaScript コードの上記のエラーが原因で問題が発生した場合に機能しないことは言うまでもありません。
いつでも確実にリダイレクトできるようにする最善の方法は、スクリプトが完了するまで出力をレンダリングしないようにすることだと思います。これを行うには、少なくともテンプレート エンジンを使用して、php コードを html から分離し、コンテンツが最後にユーザーに送信されるようにする必要があります。
出力バッファリングを使用することもできます。これにより、出力が開始される瞬間を遅らせることができるためです (出力バッファのサイズを超えたとき、または自分でフラッシュしたとき。これについてはphp.net/ob_startを参照してください。次のようなことを行う必要があります)。これ: http://codepad.org/AomD4Sok )
PS:リダイレクト後の die/exit を忘れないでください。