Подскажите, пожалуйста, из-за чего может быть ошибка Warning: Cannot modify header information.
есть кусок кода login.php.
в index.php стоит include('login.php');
ругается на установку кук в строчке 34,35 и header 36, хотя тэги <head> и т.д. я вообще перенес в конец файла, никаких выводов
Ошибка «Warning: Cannot modify header information - headers already sent by (output started at /home/cp839104/public_html/spscreen.com/index.php:2) in /home/cp839104/public_html/spscreen.com/login.php on line 34»
хотя на локальном сервере (localhost) все работает отлично, а вот на хостинге ругается. (все настройки одинаковые)
login.php
<?php
if (isset($_COOKIE['login']) && isset($_COOKIE['pass'])) {
$login = $_COOKIE['login']; //присваеваем переменную
$password = $_COOKIE['pass']; //присваеваем переменную и кодируем её в md5 для безопасности
$query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login, а поле password равно переменной $password
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
echo "Здравствуйте, ".$_COOKIE['login']."!"; // выводим сообщение об удачной авторизации!
}else{
setcookie( "login" , "", time() + 3600, "/");
setcookie( "pass" , "", time() + 3600, "/");
echo "Вы успешно авторизовались!"; // выводим сообщение об удачной авторизации!
header('Location: .');
}
}else{
if(isset($_POST['submit'])){ //выполняем нижеследующий код, только если нажата кнопка
if(empty($_POST['login'])){ //если переменная логина пуста или не существует
echo"Вы не ввели логин"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,15}/", $_POST['login'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели логин"; // выводим сообщение об ошибке
}elseif(empty($_POST['password'])){ //если переменная логина пуста или не существует
echo"Вы не ввели пароль"; // выводим сообщение об ошибке
}elseif(!preg_match("/[-a-zA-Z0-9]{3,30}/", $_POST['password'])){ //если переменная не соответствует шаблону -a-zA-Z0-9
echo"Вы неправильно ввели пароль"; // выводим сообщение об ошибке
}else{
$login = $_POST['login']; //присваеваем переменную
$password = md5($_POST['password']);//присваеваем переменную и кодируем её в md5 для безопасности
$query = mysql_query("SELECT * FROM `users` WHERE `login`='$login' AND `password`='$password'"); //отправляем запрос на выборку всего содержимого , где поле логин равно переменной $login, а поле password равно переменной $password
$row = mysql_num_rows($query); // считаем количество рядов результата запроса
if($row > 0){ //если их больше 0
setcookie( "login" , $_POST['login'], time() + 3600, "/"); // Здесь ругается
setcookie( "pass" , md5($_POST['password']), time() + 3600, "/"); // Здесь ругается
header('Location: .'); // Здесь ругается
}else{
echo "Неправильный логин или пароль!"; // выводим сообщение об ошибке!
}
}
}}
if(isset($_POST['exit'])){
setcookie( "login" , "", time() + 3600, "/");
setcookie( "pass" , "", time() + 3600, "/");
echo "Выполняем выход";
header('Location: .');
}
?>
<form action="" method="post" enctype="multipart/form-data">
<?php if (isset($_COOKIE['login']) && isset($_COOKIE['pass'])) {
echo '<input name="exit" type="submit" value="Выйти"><br />';
}else{
echo 'Логин:<br /><input name="login" type="text" size="20"><br />';
echo 'Пароль:<br /><input name="password" type="password" size="20"><br />';
echo '<input name="submit" type="submit" value="Войти">';
echo '<input name="exit" type="submit" value="Выйти"><br />';
echo '<a href = "reg.php">Регистрация</a>';
}?>
<br />
</form>