[CakePHP]Warning: Cannot modify header information – headers already sent ..がどうしても解決できない時

他人が作った古ーいシステムをメンテナンスする時に、

Warning: Cannot modify header information – headers already sent ..

がでてRedirectが動かなかったり、画面が真っ白になってしまう場合があります。
HTTPヘッダーを二重で送ってしまうことが原因ですが、なぜそうなるかというとリダイレクト前に何かしら出力しているから。
よくあるのがデバッグ出力ですが、正直どこで出してるか調べるのは至難の業です。
流石に最近はそんなバカはいないと思いますが、昔はprintとかechoとかで変数の中身を出力してデバッグしていた人がいるのですが、これ消し忘れると面倒臭いことになりますのでやってはダメです。
ちゃんとフレームワーク付属のログ出力を使いましょう。

ということで本題です
どうしても原因が掴めなくて、それでも動かしたいって時に以下の設定を試してみましょう

php.ini ファイルで

output_buffering = On

これでひとまず回避はできるはずです。

タイトルとURLをコピーしました