Possible Duplicate:
Headers already sent by PHP
I am getting this error when I try to redirect after running a user login script.
It attempts to change the header data at this line:
header("Refresh: 2; url=index.php");
This is the full login.php script.
<?php
session_start();
require_once('init.php');
$username = trim($_POST['username']);
// create a new object
$login = new Auth($_POST, $dbh);
if($login->validateLogin()){
$_SESSION['loggedin'] = true;
$_SESSION['username'] = $username;
$list = $login->getUserInfo();
$_SESSION['id'] = $list['id'];
$_SESSION['thumb'] = $list['img_thumb'];
echo '<div class="content">';
echo '<h1>Thank you for logging in '.$username.'. Redirecting...</h1>';
echo '</div>';
header("Refresh: 2; url=index.php");
}else{
echo '<div class="content">';
echo '<h1>Sorry but we didn\'t recognise those login details, please try again.</h1>';
echo '</div>';
}
require_once('inc/footer.inc.php');
?>
The init.php file calls the header.php containing the html5 doctype, meta tags etc.
How can I redirect the user to the index page after logging them in and send the header information as usual?