2013-04-09 91 views
0

我正在为我的学校做一个项目,而且我写了这个页面,原因我最终得到了2条警告信息,已经在132行上发送了标题信息,但在132行上我只有php标签警告:无法修改标题信息 - 已经发送的标题(输出在C: xampp htdocs project advancebrowsing.php:132开始)

我真的很感激它,如果我能得到一些帮助,我在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> 

回答

2

header()在您输出如此多的HTML之后将不起作用。它在发送任何实际输出之前,之前的任何输出发送到浏览器

根据PHP Manual

记住header()函数必须调用被调用,无论是普通的HTML标记,空行中文件或来自PHP。使用include或require函数或其他文件访问函数读取代码,并在调用header()之前输出空格或空行是非常常见的错误。使用单个PHP/HTML文件时存在同样的问题。

+0

所以你的意思是我把PHP命令HTML之前? – user2127632 2013-04-09 06:24:58

+0

哦,上帝,它刚刚工作! – user2127632 2013-04-09 06:26:18

0

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

同样适用于html,将显示html并且输出已经启动,因此您不能在之后调用header()

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

所以最好的解决方案是省略结束标签,因为解析器不需要它们。

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

相关问题