Help
Posted By Gregory

PHP警告:ヘッダー情報を変更できません


English version: PHP Warning: Cannot modify header information


PHP警告:ヘッダー情報を変更できません–ヘッダーはすでに送信されています…

このメッセージがサーバーのエラーログに表示されたり、Webページに表示されたりする場合があります。それはイライラしていて、メッセージに記載されているPHPスクリプトに何か問題があるように見えます。実際、このメッセージは、別のスクリプト、プラグイン、またはテーマの問題(バグ)を示しています。バグのあるプラグインを使用していて、PHPエラーの表示がオンになっている場合、このメッセージが表示されることがありますが、通常はオンになっていないはずです。

このメッセージは、Webサイト上のPHPコードの一部が出力を生成するときに表示されます。これは通常、送信してユーザーのブラウザーに表示してはならないPHP警告メッセージです。そして、この出力は、Webページのヘッダーが生成されてユーザーブラウザーに送信される前に送信されます。 Webページのヘッダーは空にすることも、Cookieなどの追加情報を処理することもできます。

ヘッダーが空であるかどうかに関係なく、ページコンテンツの前に送信する必要があります。

バグのあるWordPressプラグインが他のプラグインがヘッダーをブラウザーに送信する前にPHP警告を生成すると、 「PHP警告:ヘッダー情報を変更できません–ヘッダーは既に送信されています…」というメッセージとともにサーバーエラーが発生します。

このようなメッセージは、どのスクリプトまたはプラグインがこのエラーを引き起こしたかを示さないため、だれにも誤解を与える可能性があります。 Webサーバーは、ヘッダーが送信されていないプラグインによって生成された出力を検出すると、ヘッダーを自動的に作成してブラウザーに送信するため、そのような動作を予期しない他のすべてのプラグインは、必要に応じてヘッダーを送信できません。 。

WP CerberSecurityを使用する状況でこの問題を解決する方法

  1. ホスティングコントロールパネルのPHP設定でのエラー表示を無効にします。 PHP設定にアクセスできない場合は、ホスティングプロバイダーにサポートを依頼してください。
  2. Hardening管理ページのWPCerber設定に表示されるPHPエラーを無効にします。
  3. WP Cerberのメイン設定で、「セキュリティエンジンのロード」を「標準モード」または「詳細モード」に設定します。
  4. WP_DEBUG定数がwp-config.phpファイルで定義されているかどうかを確認します。 //行を二重スラッシュでコメントアウトするか、行全体を削除します。これはそれがどのように見えるべきかです:
    // define( 'WP_DEBUG', true );
    // define( 'WP_DEBUG', 1 );
  5. wp-config.phpファイルの先頭に次の行を追加します。
    @ini_set( 'display_errors', 0 );
    @ini_set( 'log_errors', 1 );

WP CerberまたはWordPressが問題の原因になる可能性がありますか?

いいえ。この問題を引き起こす可能性のある唯一のコードは、古い/バグのあるプラグインまたはアクティブなテーマのいずれかです。根本原因を見つける方法は?サーバーエラーログを確認してください。そして、古いプラグインを取り除いてください。


I'm a team lead in Cerber Tech. I'm a software & database architect, WordPress - PHP - SQL - JavaScript developer. I started coding in 1993 on IBM System/370 (yeah, that was amazing days) and today software engineering at Cerber Tech is how I make my living. I've taught to have high standards for myself as well as using them in developing software solutions.

View Comments
There are currently no comments.