[PHP]Cannot modify header information

add to hatena hatena.comment (0) add to del.icio.us (0) add to livedoor.clip (0) add to Yahoo!Bookmark (0) Total: 0 2009 年 2 月 12 日 by: baron

とある理由からheader関数で他のページにリダイレクトする処理を追加する必要があったんだけど、同じページをrequire_onceしているにも関わらず、アクセスするページによってリダイレクトされたり、以下のようなエラーが表示された。

PHP:
  1. Warning: Cannot modify header information - headers already sent by (output started at /foo/bar/hoge.php:2937)
  2. in /foo/bar/index.php on line 11

よくよくエラーを見たらindex.phpが呼び出しているhoge.phpの最後が

PHP:
  1. ?> // ここに改行が入ってた

のように無駄な改行がされていたため、headerを送出できなかったっぽい。
PHPのデリミタの前後には何も書いちゃいけません。

PHP:
  1. <?php
  2. ...
  3. ?>

呼び出されているhoge.phpは実際はSmartyのモジュールでした。71ファイル全てが改行されてたので全部修正してなんとかなった。

Filed under: PHP,Web,プログラム
タグ: , ,

Leave a Reply

アナログ