PHPのコードは<?phpから始まりますが、
ファイルの最初に空白行があると、その部分はHTMLデータとして出力されます。
PHPコード中で、header(‘content-type:text/html’);などを書いていると、
HTMLデータを出力するよりも先にheaderを書かなければ行けないのですが、
先の空白行が、すでに出力されたと見なされるため、
“headers already sent by …”
のエラーメッセージが表示されます。
空白行を消すと、エラーメッセージは消えると思います。
こんな説明でわかりますかねえ、、、
プラグインか、お使いのテーマが関係している可能性があります。
コメント関連のプラグインをお使いでしょうか?
dabさん
コメントありがとうございます。
出先にて、実際のコードを確認できないのですが
wordpress3.0.3を使用しており、
該当のファイルは、いずれも手を入れていません。
デザインに該当するファイルには手を付けましたが、
それによって、
どこか別なファイルに生じた空白が読み込まれているということでしょうか。。
hissyさん
コメントありがとうございます。
プラグインは特に使用していません。
ここにサイトを載せていいものなのでしょうか?
テーマは、帰宅してみないとわからないのですが。。
デザインに該当するファイルには手を付けましたが、
それによって、
どこか別なファイルに生じた空白が読み込まれているということでしょうか。
はい、よくあることです。shinoannaさんが作られたPHPのどれかの先頭の<?phpより前に空白が存在するか、あるいはエラーメッセージによって同様の現象が起こる場合があります。
hissyさん
重ねてのコメントありがとうございます。
闇雲に空白を探すのは至難の技ですが、
エラーメッセージから、ある程度、可能性のあるファイルを
特定することは可能でしょうか?
また、空白の読み込み以外に考えられる原因はありますでしょうか。
mail関数のエラーっぽいですが…。WP Multibyte Patchプラグインを有効にしたら直るかも?
あまりよろしくないですが最悪Warningを画面に表示しないという方法もあります。
hissyさん
そうっぽいのです。まさしくメール。
けれど、メール関係は、いじった記憶はまったくないのです。
コメント時の仕様がメール必須ですけど、それだけなんですよね。。
そのプラグインは、デフォルトでありましたっけ?
この週末にパソコン向かえないので、
月曜対応になるのがもどかしい。。
最悪、消す方法を教えていただけると、うれしいです。
何度もありがとうございます!
(@shinoanna)
14年、 2ヶ月前
phpの知識がないので、質問の趣旨が伝わらなければすみません。
記事にコメントの書き込みをすると、エラーが表示されます。
Warning Cannot modify header information – headers already sent by(output started at ………../wp-includes/class-phpmailer.php:489) in …………………/wp-comments-post.php on line 95
というもので、同様に96,97ライン
それから、
wp-includes/pluggable.php on line 890
にもエラーがでます。
いずれもいちども手を入れたことのない部分で、
実際、エラーはでるものの、正常どおり書き込みは出来ている様子です。
ちなみに、ログインして書き込みをすると、このようなエラーは生じません。
Zymicという海外のサーバーを利用しています。
閲覧者の環境はさまざまだとおもわれます。
解決方法がわかるかたがいらっしゃれば、
ぜひ、お力を貸していただければとおもいます。