Можно создать дубликат:
Headers already sent by PHPПредупреждение: Не удается изменить информацию в заголовке - заголовки уже отправлены
Я получаю ошибки о «заголовки уже отправлены», когда я успешно войти на страницу.
Вот мой код, который имеет дело с логином:
<?php
include("config.php");
$eUsername = $_POST['username'];
$ePassword = $_POST['password'];
$con = mysql_connect("localhost","MY_USERNAME","MY_PASSWORD");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("forum", $con);
$result = mysql_query("SELECT * FROM members WHERE username = '$eUsername'");
while($row = mysql_fetch_array($result))
{
if ($ePassword==$row['password']) {
echo "Correct";
setcookie("loggedIn", "true", time()+1000000000);
setcookie("logUsername", "$eUsername", time()+100000000);
setcookie("logPassword", "$ePassword", time()+100000000);
}
else {
echo "Incorrect username/password. Please try again.";
}
}
mysql_close($con);
if ($_COOKIE['loggedIn']=="true") {
$curURL=basename($_SERVER['SCRIPT_NAME']);
echo "You are already logged in. <a href='$curURL?lo=true'>Log out?</a>";
}
echo "<br /><br />";
print_r($_COOKIE);
?>
Поэтому в основном то, что это делает, если войти с правильной информацией, он будет установить три печенья, имя пользователя, пароль и один, чтобы проверить для два других.
Но когда я успешно войти, я получаю эти ошибки:
Предупреждение: Не удается изменить информацию в заголовке - заголовки уже прислал (выход начался в /home/scott/web/forum/index.php : 18) в /home/scott/web/forum/index.php в строке 19
Предупреждение: не удается изменить информацию заголовка - уже отправлены заголовки (вывод начат в /home/scott/web/forum/index.php : 18) в /home/scott/web/forum/index.php в строке 20
Предупреждение: не удается изменить информацию заголовка - уже есть заголовки нт путем (выход начался в /home/scott/web/forum/index.php:18) в /home/scott/web/forum/index.php на линии 21
Что я делаю не так?
Во-первых, надеюсь, вам понравится SQL-инъекция, потому что у вас это есть в пиках. Во-вторых, вы должны хэшировать свои пароли. – Kalium
Удалены теги, связанные с SQL, потому что заголовки являются только HTTP. –
Не говоря уже о сохранении фактического пароля в базе данных и их файлах cookie. Наихудшая безопасность. – animuson