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(23) | TrackBack(5) | 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
PHP勉強中ですが、私もこの記事で解決できました。
私の場合、output_buffering=Onと書いたphp.iniをWindowsフォルダに入れ忘れてたんですけど。
iniファイルを見直そうとして、ないないない!
というところで気づきました。
ありがとうございました
Posted by goodyera at 2010年04月04日 15:01
お邪魔致します。
私もこのエラーに悩みましたが、確かにonで解決したのですが、offのままでも解決しました。
どうもonにすると言う事は、エラーであってもダウンロードする様な設定だと聞きました。
記述を見直しましたら、先頭行に「改行」があったので、これがヘッダーと認識して、phpで書いたヘッダーが重複する形になりエラーが出ていた原因でした。
1行目に「 <?php 」と記述すると解決しましたので、参考になればと思い、書き込みさせて頂きました。
いろいろ勉強になりました。ありがとうございました。
Posted by りゅう at 2010年04月07日 16:31
このエラーに1週間ほど悩まされ続けました…
おかげさまで解決しました。
ありがとうございます!!
Posted by めっちょ at 2010年04月27日 09:57
こちらの記事で無事解決しました。
PHP5でやっていた時は何の問題も無かったのに、PHP4に移したらこのエラーが出てしまって・・
半日悩みました。

本当に助かりました。
Posted by エロ系WEB屋さん at 2010年05月10日 11:53
ありがとうございます!
すぐに解決できました!!
Posted by カメ at 2010年08月19日 12:21
ありがとうございます!
一発解決ですぅ♪
Posted by mory at 2010年09月27日 18:44
まさしくドンピシャな解決策でした。
ありがとうございました。
Posted by mochoppa at 2010年10月09日 11:53
マジ助かりました!
Posted by tantan269 at 2011年03月01日 19:07
ブラボー!
ありがとうございました。
Posted by fdsif at 2011年04月22日 16:45
自分もLinuxからWindowsに移植してきたら同じエラーが出ていたので助かりました!
Posted by yaki at 2011年04月30日 23:08
フー!!!!!!!!!!!!
AZS!!!!!!!!!!!!
Posted by ちーぽ at 2011年07月21日 17:16
感謝感激です!!
Posted by うお at 2011年11月11日 17:47
この記事のおかげで問題が解決しました。
危うく胃潰瘍になるところでした!
ありがとうございます。
Posted by hiro at 2011年12月22日 14:26
output_buffering = Onで解決しました。ありがとうございます。
Posted by ともちん at 2012年01月09日 11:52
ありがとうございます。非常に助かりました。

感謝です!!
Posted by at 2012年04月03日 16:44
ちょーーーーーーーーーーーーーー助かりました。ありがとうございました。
Posted by at 2012年05月09日 16:51
テストアップロードしていたところ上記のエラーにぶつかりましたがこちらの記事で解決できましたありがとうございます
Posted by mayuu at 2012年10月09日 02:18
このエントリーをヒントに解決できました!
ありがとうございます、助かりました(^-^)
Posted by そうめい at 2013年02月08日 17:33
他のサーバーで動いているプログラムをXサーバーに移したところ、このエラーが出てしまい、解決方法が分からず困っていました。

この記事に救われました。ありがとうございます。
Posted by TAKE at 2014年06月22日 18:20
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバック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

[11.開発日記][PHP]session_start()も「すべての実際の出力の前にコールする必要」がある!
Excerpt: Warning: Cannot modify header information - headers already sent by (output started at ***.php:***)..
Weblog: [Mi]みたいなもの
Tracked: 2011-01-20 11:28

[wordpress]移行でしくった
Excerpt: 自分のPCから学校のPCにデータを移したときにちょっと色々トラぶった。 キャッシュクリアのプラグインを手でインストールしたらキャッシュクリアの途中で止まってしまった 上の問題の後ダッシュボードにすら..
Weblog: Webメーカーしっぱ
Tracked: 2012-07-30 18:10

PHP:Warning: Cannot modify header information &#8211; headers already sent by &#8230;の解決策
Excerpt: 作りかけのスクリプトを動くかテストしようとしたら ヘッダーは変えられないよんって エラーが出ました。 ええええええ!!ってびっくりしたのでいつもどおりグーグル先生にお願い☆したところ こちらの記事がベ..
Weblog: photoshop design&#039;s practice
Tracked: 2012-10-09 02:24

WordPressでエントリー更新すると真っ白になってしまう現象
Excerpt: あるサイトのテーマをいじっていたら エントリー更新すると画面が真っ白になってしまう現象に出会いました。 解決にけっこう苦労したわりに 「それだけか・・・」 というかんじなので、備忘的にメモしておきます..
Weblog: 週刊社長力
Tracked: 2013-02-10 17:37
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。