Возможный дубликат: Заголовки уже отправлены PHP
Я уже некоторое время борюсь с этой ошибкой.
Для начала я просто подумал, что это пробел, но после дальнейших исследований я думаю, что это может быть проблема, подобная этому:
Посмотрите на любые операторы, которые могли бы отправить вывод пользователю перед этим заголовком. Если вы найдете один или несколько, измените свой код, чтобы переместить заголовок перед ними. Сложные условные утверждения могут усложнить проблему, но они также могут помочь решить проблему. Рассмотрим условное выражение в верхней части PHP script, которое определяет значение заголовка как можно раньше и устанавливает его там.
Я предполагаю, что заголовок include вызывает проблему вместе с header(), но я не уверен, как изменить порядок кода, чтобы избавиться от этой ошибки.
Как удалить ошибку?
<?php
$username = $password = $token = $fName = "";
include_once 'header.php';
if (isset($_POST['username']) && isset($_POST['password']))
$username = sanitizeString($_POST['username']);
$password = sanitizeString($_POST['password']); //Set temporary username and password variables
$token = md5("$password"); //Encrypt temporary password
if ($username != 'admin')
{
header("Location:summary.php");
}
elseif($username == 'admin')
{
header("Location:admin.php");
}
elseif($username == '')
{
header("Location:index.php");
}
else
die ("<body><div class='container'><p class='error'>Invalid username or password.</p></div></body>");
if ($username == "" || $token == "")
{
echo "<body><div class='container'><p class='error'>Please enter your username and password</p></div></body>";
}
else
{
$query = "SELECT * FROM members WHERE username='$username'AND password = '$token'"; //Look in table for username entered
$result = mysql_query($query);
if (!$result)
die ("Database access failed: " . mysql_error());
elseif (mysql_num_rows($result) > 0)
{
$row = mysql_fetch_row($result);
$_SESSION['username'] = $username; //Set session variables
$_SESSION['password'] = $token;
$fName = $row[0];
}
}
?>