php ヘッダーが機能しない場合の方法: 1. location と ":" の間のスペースを削除します; 2. ヘッダーを使用する前に出力を削除します; 3. ヘッダーが実行された後の 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 サイトの他の関連記事を参照してください。