-3

重複の可能性:
PHP によって既に送信されたヘッダー

ドロップダウンメニューを表示するphp Webページがあります

ドロップダウン メニューには、クエリを実行していくつかのセッション変数を設定するバックエンド スクリプトへのリンクが表示されます。次に、結果ページにリダイレクトします

header('Location: search_results.php');

リダイレクトは「ヘッダー情報を変更できません - ヘッダーは既に送信されています」で終了します

これを回避する方法を見つけようとしています。「ヘッダーの変更」エラーは、現在実行中の PHP スクリプトから常にローカルなエラーですか? それともセッション全体ですか?

ありがとう、JM

4

4 に答える 4

3

その行の前に何も出力していないことを確認してください (空白やその他の出力など)。

これを行う簡単な方法は、出力バッファをオンにすることです:

ob_start();

必要に応じてクリアします。

ob_end_clear();  // erases output buffer
// or 
ob_end_flush();  // sends output buffer to screen

ただし、適切な解決策は、コードを調べて、無駄な出力ステートメントがないことを確認することです。

于 2012-08-22T21:39:46.153 に答える
1

あなたのコードを見なければ、headerPHP コードの前に HTML があると推測する危険があります。ヘッダーは、HTML の前に解析する必要があります。

于 2012-08-22T21:39:46.107 に答える
0

ob_start()PHP スクリプトの先頭で を発行することにより、出力バッファリングの使用を試すことができます。

このエラーの一般的な原因は、開始<?phpタグの前に空白 (または場合によっては BOM) があることです。ヘッダー チェックはローカルであり、セッション全体ではありません。一方で、同梱されている他の PHP ファイルの影響を受けているため、それらも確認する必要があります。

于 2012-08-22T21:39:57.903 に答える
-1

メタリダイレクトを使用できます

<meta http-equiv="refresh" content="2;url=http://google.com/">

上記は 2 秒でページをhttp://google.com/に更新し、 次に javascript リダイレクトします。

<script type='text/javascript'>
document.location.href='http://google.com';
</script>
于 2012-08-22T21:39:57.840 に答える