警告:无法修改标题信息-标题已由发送(输出从C:\xampp\htdocs\project\advancebrowsing.php:132开始)

警告:无法修改标题信息-标题已由发送(输出从C:\xampp\htdocs\project\advancebrowsing.php:132开始),php,html,mysql,Php,Html,Mysql,我正在为我的学校做一个项目,我写了这个页面,但由于某些原因,我在最后收到了两条关于标题信息的警告,已经在第132行发送了,但是在第132行,我只有php标签 如果我能得到一些帮助,我会非常感激,我在1小时内写了这段代码,但在过去的2小时里我一直在试图解决这个问题。。。 终于累了,决定去问它 这是我的密码 <html> <body> <form method="POST"> Browse By Author's name starting with :<s

我正在为我的学校做一个项目,我写了这个页面,但由于某些原因,我在最后收到了两条关于标题信息的警告,已经在第132行发送了,但是在第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>
在您已经输出了这么多HTML之后,标题将无法工作。在将任何输出发送到浏览器之前,必须调用它

请记住,在发送任何实际输出之前,必须调用header,无论是通过普通HTML标记、文件中的空行还是从PHP。使用include或require函数或其他文件访问函数读取代码,并且在调用头之前输出空格或空行,这是一个非常常见的错误。使用单个PHP/HTML文件时也存在同样的问题


当您使用echo或任何函数写入输出时,PHP已经发送了响应体。 这意味着您不能在之后发送标题

同样适用于html,html将被显示,并且输出已经开始,因此您不能在之后调用header

这同样适用于结束标记?>。如果在结束标记之后有任何单个空格,解析器将忽略它,因为在结束标记之外,输出将开始

因此,最好的解决方案是ommit结束标记,因为解析器不需要它们


这就像是在发送一封电子邮件并在之后添加地址一样。

您需要将PHP代码移到HTML之前的页面顶部

有关更详细的答案:


你是说我把php命令放在html之前了?哦,天哪,它真的起作用了!