警告: ヘッダー情報を変更できません - ヘッダーは、/some/file.php の 12 行目、/some/file.php の 23 行目で出力の送信をすでに開始しています。
P粉164942791
2023-07-30 11:19:01
<p>出力前にヘッダーを送信する必要がある理由を理解するには、一般的な HTTP 応答を確認する必要があります。 PHP スクリプトは主に HTML コンテンツを生成し、一連の HTTP/CGI ヘッダーを Web サーバーに渡します。このエラーは、サーバー上でデータベースまたは PHP サイトを含む Web サイトをホストしているときに発生します。まず、ホスティング Web サイトにアクセスし、.htaccess ファイルを見つけて、そのファイルに次のコマンドを追加する必要があります (php_flag Output_buffering on)。そうすれば問題は解決します。 </p>
この問題のトラブルシューティングと解決のためにできることは次のとおりです:
指定された行を確認してください: 警告メッセージには、出力が /some/file.php の 12 行目から始まっていることが示されており、オンラインになっています。 23 ヘッダー情報を変更してみます。これらの行に移動し、23 行目の header() 関数呼び出しの前にスペース、echo、print、HTML、またはその他の出力がないことを確認します。
先頭のスペースを削除する: 現在のファイルの前に PHP ファイルが含まれているか必須である場合 (例: include または require を使用)、これらのファイルの開始タグ <?php の前に先頭のスペースがないことを確認してください。 。 PHP タグの外側の空白は出力とみなされ、この警告が発生する可能性があります。
PHP 終了タグを避ける: PHP コードのみを含む (HTML を含まない) PHP ファイルでは、通常、ファイル末尾の PHP 終了タグ (?>) を省略することをお勧めします。これにより、出力のトリガーを避けるために、終了タグの後に予期しないスペースや文字が含まれないようになります。
出力バッファリングを使用する: header() 呼び出しの前に避けられない出力がある場合 (ライブラリの依存関係や条件ステートメントなどにより)、出力バッファリングを使用して出力をキャプチャし、出力がサーバーに送信されるのを防ぐことができます。すぐにブラウザ。 PHP スクリプトの先頭で ob_start() を使用して出力バッファリングを開始し、 header() 呼び出しの前に ob_end_flush() または ob_end_clean() を使用して出力バッファリングを終了します。
出力バッファリングの使用例:
リーリー