-2

検索テキストボックスを含む「header.php」ファイルがあります。「myPage.php」という別のファイルには、「header.php」が含まれています。header.php 内

 if (isset($_POST['Searchbutton'])){ // this will execute when the search button is clicked.
 $target = $_POST['searchtext'];
 header("Location: searchresult.php?text=" . $target); // line #8
 }

myPage.php 内

<?php
include("header.php");
?>

「myPage.php」で検索オプションを使用すると、次のエラーが表示されます

Cannot modify header information - headers already sent by (output started at myPage.php:3) in header.php on line 8.

誰でもコンセプトを理解するのを手伝ってくれませんか。私はphpの初心者です。さらに情報が必要かどうか尋ねてください。

乾杯!

4

3 に答える 3

0

要するに、あなたがやろうとしていることは意味がありません。ページを送信するときは、HTTP ヘッダーも一緒に送信します。ページを送信しようとしてから、クライアントを別のページにリダイレクトするヘッダーを送信しようとしています。

これが、headers already sent エラーが発生する理由です。フォームを投稿しようとしているだけなので、リダイレクトしようとする理由はありません...フォームのターゲットを検索条件を処理するスクリプトにするだけです。

于 2013-04-18T18:53:08.007 に答える
0

header()何かが既にブラウザに出力されている場合、呼び出すことはできません。この問題ob_start()は、コードの先頭とob_flush()、出力を送信する場所で回避できます。ob_flush()これにより、が呼び出されるまで、ブラウザへのすべての出力がバッファリングされます。

これは、header() リダイレクト、またはその他の変更が以前に行われている限り、行うことができることも意味します。ob_flush()

于 2013-04-18T18:56:38.213 に答える