cannot modify headers
<p>For the last week I have read all the questions and answers on headers and tried them all, but nothing appears to work.</p>

<p>I've included a comments form int he contact page of my website and I continually get the</p>

<blockquote>
  <p>Warning: Cannot modify header information - headers already sent by (output started at /contact/contact1.php:1) --contact/contact1.php on line 40 message.</p>
</blockquote>

<p>This is the code behind the contact form*emphasized text*</p>

<pre><code>&lt;?php
ob_start();
/* Set e-mail recipient */
$myemail  = "barry@seagipsy.co.uk";
/* Check all form inputs using check_input function */
$yourname = check_input($_POST['yourname'], "Enter your name");
$subject  = check_input($_POST['subject'], "Write a subject");
$email    = check_input($_POST['email']);
$website  = check_input($_POST['website']);
$likeit   = check_input($_POST['likeit']);
$how_find = check_input($_POST['how']);
$comments = check_input($_POST['comments'], "Write your comments");
/* If e-mail is not valid show error message */
if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/", $email))
{
show_error("E-mail address not valid");
 }

 /* If URL is not valid set $website to empty */
if (!preg_match("/^(https?:\/\/+[\w\-]+\.[\w\-]+)/i", $website))
{
    $website = '';
}

/* Let's prepare the message for the e-mail */
$message = "Hello!
Your contact form has been submitted by:
Name: $yourname
E-mail: $email
URL: $website
Like the website? $likeit
How did he/she find it? $how_find
Comments:
$comments
End of message
";
/* Send the message using mail() function */
   mail($myemail, $subject, $message);
/* Redirect visitor to the thank you page */
      header('Location: thanks.htm');
      exit();
   /* Functions we used */
function check_input($data, $problem='')
{
    $data = trim($data);
    $data = stripslashes($data);
    $data = htmlspecialchars($data);
    if ($problem &amp;&amp; strlen($data) == 0)
    {
        show_error($problem);
    }
     return $data;
}

function show_error($myError)
{
?&gt;
&lt;html&gt;
     &lt;body&gt;
    &lt;b&gt;Please correct the following error:&lt;/b&gt;&lt;br /&gt;
    &lt;?php echo $myError; ?&gt;
    &lt;/body&gt;
    &lt;/html&gt;
&lt;?php
exit();
}
?&gt;
</code></pre>

<p>Regardless of where I put the redirect headers(location the error message just follows it. I've tried ob_start and ob_flush, nothing seems to work.</p>

<p>I had a similar problem with some login forms that was corrected with the ob_start</p>
