0

私は学校のプロジェクトを行っており、このページを書きましたが、何らかの理由で、132行目で既に送信されたヘッダー情報について最後に2つの警告が表示されますが、132行目ではphpタグしかありません

このコードは 1 時間で書きましたが、過去 2 時間はこの問題を解決しようとしていました ... 最後に疲れて質問することにしました

ここに私のコードがあります

<html>
<body>
<form method="POST">
Browse By Author's name starting with :<select name="author">
<option value="">--Select--</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
<option value="H">H</option>
<option value="I">I</option>
<option value="J">J</option>
<option value="K">K</option>
<option value="L">L</option>
<option value="M">M</option>
<option value="N">N</option>
<option value="O">O</option>
<option value="P">P</option>
<option value="Q">Q</option>
<option value="R">R</option>
<option value="S">S</option>
<option value="T">T</option>
<option value="U">U</option>
<option value="V">V</option>
<option value="W">W</option>
<option value="X">X</option>
<option value="Y">Y</option>
<option value="Z">Z</option>
</select><br><br>

Browse by Title start with :<select name="title">
<option value="">--Select--</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
<option value="H">H</option>
<option value="I">I</option>
<option value="J">J</option>
<option value="K">K</option>
<option value="L">L</option>
<option value="M">M</option>
<option value="N">N</option>
<option value="O">O</option>
<option value="P">P</option>
<option value="Q">Q</option>
<option value="R">R</option>
<option value="S">S</option>
<option value="T">T</option>
<option value="U">U</option>
<option value="V">V</option>
<option value="W">W</option>
<option value="X">X</option>
<option value="Y">Y</option>
<option value="Z">Z</option>
</select><br><br>

Browse by Publisher start with :<select name="publisher">
<option value="">--Select--</option>
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
<option value="F">F</option>
<option value="G">G</option>
<option value="H">H</option>
<option value="I">I</option>
<option value="J">J</option>
<option value="K">K</option>
<option value="L">L</option>
<option value="M">M</option>
<option value="N">N</option>
<option value="O">O</option>
<option value="P">P</option>
<option value="Q">Q</option>
<option value="R">R</option>
<option value="S">S</option>
<option value="T">T</option>
<option value="U">U</option>
<option value="V">V</option>
<option value="W">W</option>
<option value="X">X</option>
<option value="Y">Y</option>
<option value="Z">Z</option>
</select><br><br>

Browse by Genre:<select name="genre">
<option value="">--Select--</option>
<option value="fiction">Fiction</option>
<option value="non-fiction">non-fiction</option>
<option value="sciencefiction">science fiction</option>
</select><br><br>

Book Award: <select name="bookaward">
<option value="">--Select--</option>
<option value="1">Arthur Ellis Award</option>
 <option value="2">Booker Prize</option>
 <option value="3">Canadian Jewish Book Awards</option>
 <option value="4">Commonwealth Writers Prize</option>
 <option value="5">Dayne Ogilvie Prize</option>
 <option value="6">Edna Staebler Award</option>
 <option value="7">Geoffrey Bilson Award</option>
 <option value="8">Gerald Lampert Award</option>
 <option value="9">Griffin Poetry Prize</option>
 <option value="10">Governor General's Award</option>
 <option value="11">Commonwealth Writers Prize</option>
 <option value="12">Journey Prize</option>
 <option value="13">Lorne Pierce Medal</option>
 <option value="14">Wright Awards</option>
 <option value="15">Milton Acorn People's Poetry Award</option>
 <option value="16">Matt Cohen Award: In Celebration of a Writing Life</option>
 <option value="17">Norma Fleck Award</option>
 <option value="18">RBC Bronwen Wallace Award for Emerging Writers</option>
 <option value="19">Pat Lowther Award</option>
 <option value="20">Rogers Writers' Trust Fiction Prize</option>
 <option value="21"> Wright Awards</option>
 <option value="22">Writers' Trust Distinguished Contribution Award</option>
 <option value="23">Writers' Trust Engel/Findley Award</option>
 <option value="24">Winterset Award</option>
 <option value="25">Hilary Weston Writers' Trust Prize for Nonfiction</option>
 <option value="26">Geoffrey Bilson Award</option>
 </select><br><br>
<input type="submit" name="submit" value="Browse">
</form>

<?php
error_reporting(E_ERROR|E_WARNING);

$con = mysql_connect("localhost", "root", "");

if (!$con) {
die('Connection Failed: ' . mysql_error());
}

 if (mysql_select_db("elibrary",$con)){
if ($_POST['submit']){
    $author = $_POST['author'];
    $title = $_POST['title'];
    $genre = $_POST['genre'];
    $publisher= $_POST['publisher'];
    $award= $_POST['bookaward'];

    if ($author != "") {
    $author1 = "author";
    $like1 = "like";
    $and1 = "and";
    }   

    if ($title != "") {
    $title1= "title";
    $like2 = "like";
    $and2 = "and";
    }   

    if ($genre != "") {
    $genre1="genre";
    $like3 = "like";
    $and3 = "and";
    }   

    if ($publisher != "") {
    $publisher1= "publisher";
    $like4 = "like";
    $and4 = "and";
    }   

    if ($award != "") {
    $award1= "bookawards.id";
    $like5 = "=";
    $and5 = "and";
    }

    $browse = ("select * from books,bookawards,bookrelations where books.id = bookrelations.bookid and bookawards.id = bookrelations.bookawardsid '".$and1."' '".$author1."' '".$like1."' '".$author."%' '".$and2."' '".$title1."' '".$like2."' '".$title."%' '".$and3."' '".$genre1."' '".$like3."' '".$genre."%' '".$and4."' '".$publisher1."' '".$like4."' '".$publisher."' '".$and5."' '".$award1."''".$like5."''".$award."'");
    setcookie("browse",$browse);
    header("Location: shop.php");
    exit(); 
    }
    }
mysql_close();
?>
</body>
</html>
4

3 に答える 3

8

PHP コードをページの先頭 (HTML の前) に移動する必要があります。

より詳細な回答については:

https://stackoverflow.com/a/8028987/1724762

于 2013-04-09T06:26:21.340 に答える
2

header()大量の HTML を既に出力した後では機能しません。出力がブラウザに送信される前に呼び出す必要があります

PHPマニュアルによると

実際の出力が送信される前に、通常の HTML タグ、ファイル内の空白行、または PHP から header() を呼び出す必要があることに注意してください。include 関数、require 関数、または別のファイル アクセス関数を含むコードを読み取り、header() が呼び出される前に出力されるスペースまたは空の行があることは、非常に一般的なエラーです。単一の PHP/HTML ファイルを使用する場合にも、同じ問題が存在します。

于 2013-04-09T06:24:02.453 に答える
0

または任意の関数を使用して出力に書き込むとecho、PHP は既に応答本文を送信しています。つまり、後でヘッダーを送信することはできません。

html にも同じことが当てはまります。html が表示され、出力が既に開始されているため、後で呼び出すことはできませんheader()

閉じタグも同様?>です。終了タグの後に単一のスペースがある場合、(終了タグの外側にあるため) パーサーによって無視され、出力が開始されます。

したがって、パーサーは終了タグを必要としないため、最適な解決策は終了タグを省略することです。

メールを送信してからアドレスを追加するようなものです。

于 2013-04-09T06:26:20.907 に答える