0

I'm doing a project for my school and I wrote this page but for some reason I get 2 warnings in the end about header info already sent on line 132 but on line 132 all I have is the php tag

I would really appreciate it if I can get some help, I wrote this code in 1 hour but trying to solve this problem for the past 2 hours ... Finally got tired and decided to ask it

here is my code

<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>
user2127632
  • 61
  • 2
  • 3
  • 7

3 Answers3

8

You need to move your PHP code to top of the page (before HTML).

For more detailed answer:

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

Community
  • 1
  • 1
kwelsan
  • 1,229
  • 1
  • 7
  • 18
2

header() will not work after you have already output so much HTML. It has to be called before any output is sent to browser

According to PHP Manual

Remember that header() must be called before any actual output is sent, either by normal HTML tags, blank lines in a file, or from PHP. It is a very common error to read code with include, or require, functions, or another file access function, and have spaces or empty lines that are output before header() is called. The same problem exists when using a single PHP/HTML file.

Quentin
  • 914,110
  • 126
  • 1,211
  • 1,335
Hanky Panky
  • 46,730
  • 8
  • 72
  • 95
0

When you write to the output with echo or any function, PHP has already sent the response body. Which means that you cannot send headers after.

The same apply for html, the html will be displayed and the output has already started so you cannot call header() after.

The same also apply to closing tags ?>. If you have any single space after the closing tag, it will be ignored by the parser (because outside of the closing tag) and the output will start.

So the best solution is to ommit the closing tags, because the parser doesn't need them.

It's like if you were sending an email and add the address after.

epicdev
  • 922
  • 4
  • 10