Cannot modify header information - headers already sent を出さなくするために。

// ヘッダがまだ何も送信されていない場合に、送信します
if (!headers_sent()) {
header('Location: http://www.example.com/');
exit;
}

// オプションのfileとlineパラメータの使用例(PHP4.3.0以降)
// $filename と $linenum が後で使用されていることに注目。
// これらの変数に事前に値を与えたりしてはいけません。
if (!headers_sent($filename, $linenum)) {
header('Location: http://www.example.com/');
exit;

// おそらく、ここでエラー処理を行うでしょう。
} else {

echo "$filename の $linenum 行目でヘッダがすでに送信されています。\n" .
"リダイレクトできません。代わりにこの リンク をクリックしてください。\n";
exit;
}


てな感じでチェックできるっぽい。
後は、ファイルの最後に誤って空白が入ったりしないようにする為に、?>を書かないとか。。。