2007年12月20日

PHP:Warning: Cannot modify header information - headers already sent by ...の解決策

PHPにてユーザー認証セッション管理の機能を構築中、
スクリプト内でheader()関数を呼ぶと、表題の
 『Warning: Cannot modify header information - headers already sent by ...』
というエラーが出てうまく行かず、しばらく悩まされましたが解決しました。

このエラーメッセージでグーグル検索をかけると、どのFAQやフォーラムに行っても、
 『そのエラーは、既に書き込まれたヘッダーを変更しようとして・・・』
 『スクリプトに余分な空白文字がある場合に出る。それを削除すれば解決する。』
といった類の書き込みがほとんどでした。
でも、私の場合はどれにも該当しません。

PHPの設定と関係があるかと思い、php.ini で検索を絞ったら、解決策に当たりました。

感謝。
PHPエラー『...headers already sent by ...』の解決策

元々、Linuxだとうまく行ってWindowsだとうまくいかないという状況だったので、案の定Windowsの設定の方がうまく行ってませんでした。

【解決策】
php.iniにて
  output_buffering = Off
となっている箇所を、
  output_buffering = On
にする。

バッファリングを設定することにより、ヘッダ情報が完成するのを待ってから出力してくれているのだろうか。
posted by mtomiz at 10:58| 東京 晴れ| Comment(4) | TrackBack(1) | PHP | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
めっさ助かりました!おかげで問題解決です。ありがとうございました。
Posted by ぽいっつ at 2008年06月17日 07:49
こちらの記事を参考にさせていただきました。おかげさまで問題が解決いたしました。ありがとうございました。
Posted by 通りすがり人 at 2008年11月05日 20:55
ありがとうございました。PHP を入れ直したらこの問題に当たってしまい、どうしようかと思っていました。
助かりました。
Posted by Lucent crafts at 2008年11月16日 10:48
ありがとうございました
同じ問題で解決しました。
Posted by 一日悩みました at 2009年10月20日 09:50
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

この記事へのトラックバックURL
http://blog.seesaa.jp/tb/73726670

この記事へのトラックバック

Mac OS X Server構築メモ(2)
Excerpt: 今回はphp資産の移行が目標。 古いサーバーからphpのコンテンツの一部を新サーバーにFTP。 index.phpにアクセスすると、いきなりダウンロードが始まってしまう。 で、例によって/etc/ht...
Weblog: Min^2の日記
Tracked: 2008-06-03 19:49