ホームページ  >  記事  >  バックエンド開発  >  PHPヘッダーエラーの問題を解決する方法

PHPヘッダーエラーの問題を解決する方法

藏色散人
藏色散人オリジナル
2021-10-20 11:12:535054ブラウズ

無効な php ヘッダーの解決策: 1. 場所と「:」記号の間のスペースをキャンセルします。 2. ヘッダーを使用する前に出力があってはなりません。 3. php.ini を変更してキャッシュを開き、「output_buffering=」を変更します。 0"は409に変更されます。

PHPヘッダーエラーの問題を解決する方法

#この記事の動作環境: Windows7 システム、PHP7.1 バージョン、DELL G3 コンピューター

問題の解決方法PHPヘッダーの失敗ですか?

PHP ヘッダー障害の原因分析と解決策

PHP で header("location:test.php") を使用する お支払いくださいジャンプするときは次の点に注意してください:

1. location と ":" 記号の間にスペースを入れることはできません。スペースを入れないとエラーが発生します。

2. ヘッダーを使用する前に出力を行うことはできません。また、インクルード ページのタグ "?>" の後にスペースを入れてはいけません。 !

3. ヘッダー以降の PHP コードも実行されます。

#続き:

問題: ヘッダー関数の前にコンテンツを入力してください一般的にhtmlコンテンツはheader関数より前に出力することはできません。同様にsetcookie()関数やsession関数などもあり、これらの関数は出力ストリームにメッセージヘッダ情報を追加する必要があります。 header() が実行される前に echo などのステートメントがある場合、後で header() が発生したときに、「警告: ヘッダー情報を変更できません – ヘッダーは既に…によって送信されました。」エラーが報告されます。つまり、これらの関数の前にテキスト、空白行、復帰などを置くことはできず、header() 関数の後に exit() 関数を追加するのが最善です。たとえば、次の誤った記述では、2 つの PHP コード スニペットの間に空白行があります。

//ここに空白行が必要です

原因: PHP スクリプトの実行が開始されると、http メッセージ ヘッダー (タイトル) 情報と本文情報を同時に送信できます。http メッセージ ヘッダー (header() または SetCookie() から)関数) はすぐには送信されず、代わりにリストに保存されます。これにより、デフォルトのヘッダー (Content-Type ヘッダーなど) を含むヘッダー情報を変更できます。ただし、スクリプトがヘッダー以外の出力 (例: Content-Type ヘッダー) を送信すると、 HTML または print() 呼び出しを使用する)、PHP は最初にすべてのヘッダーを送信し、次に HTTP ヘッダーを終了する必要があります。その後、本文データの送信を続けます。この時点から、ヘッダー情報を追加または変更する試みは許可されず、上記のエラー メッセージのいずれかが送信されました。

解決策: php.ini を変更してキャッシュ (output_buffering) を開き、output_buffering=0 をoutput_buffering=4096

に変更します。

または、プログラム内でキャッシュ関数 ob_start()、ob_end_flush() などを使用します。原則として、output_buffering が有効な場合、スクリプトが出力を送信するときに PHP は HTTP ヘッダーを送信しません。代わりに、この出力を動的に増加するキャッシュにパイプ処理します (集中出力メカニズムを持つ PHP 4.0 でのみ使用可能)。ヘッダーは実際には送信されないため、ヘッダーを変更/追加したり、Cookie を設定したりすることができます。すべてのスクリプトが終了すると、PHP は自動的に HTTP ヘッダーをブラウザーに送信し、出力バッファーの内容を送信します。

推奨学習: 「

PHP ビデオ チュートリアル

以上がPHPヘッダーエラーの問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。