ホームページ  >  記事  >  バックエンド開発  >  PHPヘッダーが機能しない場合の対処法

PHPヘッダーが機能しない場合の対処法

藏色散人
藏色散人オリジナル
2021-07-14 09:27:512992ブラウズ

php ヘッダーが機能しない場合の方法: 1. location と ":" の間のスペースを削除します; 2. ヘッダーを使用する前に出力を削除します; 3. ヘッダーが実行された後の PHP コード。

PHPヘッダーが機能しない場合の対処法

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

こんな場合はどうすればよいですかphp ヘッダーが機能しませんか?

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

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

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

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

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

続き:

問題: ヘッダー関数の前にコンテンツを入力する

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

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

理由:

PHP スクリプトの開始 実行すると http メッセージのヘッダー (タイトル) 情報と本文情報を同時に送信できます http メッセージ ヘッダー (header() または SetCookie() 関数から) はすぐには送信されず、保存されますこれにより、デフォルトのヘッダー (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 までご連絡ください。