Доброго времени суток. Не понимаю в чём ошибка в коде. В браузере вылезает ошибка при редиректе на другой файл - Cannot modify header information - headers already sent by. Объясните, где я накосячил? В интернете искал инфу, понял примерно суть ошибки, но как её исправить не знаю. Уже и хтмл код удалял, и все пробелы с пустыми строками смотрел, не могу понять в чём проблема.
<!DOCTYPE HTML>
<html>
<meta charset="utf-8">
</html>
<?php
if (isset($_POST['login']))
{
$login = $_POST['login'];
}
if (isset($_POST['password']))
{
$password=$_POST['password'];
}
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
$login = trim($login);
$password = trim($password);
include ("bd.php");
$result = mysql_query("SELECT * FROM users WHERE login='$login'",$db);
$myrow = mysql_fetch_array($result);
if (empty($myrow['password']))
{
exit ("Извините, введённый вами login или пароль неверный.");
}
else
{
if ($myrow['password']==$password)
{
$_SESSION['login']=$myrow['login'];
$_SESSION['id']=$myrow['id'];
//echo "Вы успешно вошли на сайт! <a href='index.php'>Главная страница</a>";
header('Location: http://localhost/practice/main.php/');
exit;
}
else
{
exit ("Извините, введённый вами login или пароль неверный.");
}
}
?>
PHP при выводе результата работы скрипта использует буферизацию
Обычный HTTP-протокол состоит из двух условных секций: заголовки HTTP и тело страницы. PHP генерирует как правило тело страницы, но управление заголовками ему тоже доступно, с помощью функции header() например
Однако есть ограничение - нельзя отправить кусок тела HTTP, а потом поменять header, поскольку он идет ДО тела HTTP
Чтобы этого избежать используют конструкции следующего вида:
ob_start();
$page = SomeFunctionOrClassMethod();
print $page;
ob_flush();
Здесь под SomeFunctionOrClassMethod()
понимают что-то, что будет генерировать для вас эту страницу. В процессе генерации может возникнуть ситуация, когда надо будет записать header - не вопрос, благодаря ob_start() вывода в поток HTTP еще не было. Вывод будет только при вызове ob_flush()
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем доброго времени суток, не имел опыта работы с данных итераторомПытаюсь разобраться
Как сделать плавное появление текса при скроле*???