Headers already sent
при создании авторизации на сайте:
Warning: Cannot modify header information - headers already sent by (output started at C:\OSPanel\domains\NewProject.ru\register\connect.php:5) in C:\OSPanel\domains\NewProject.ru\index.php on line 26
Вот мой php код
<?
require "register/rb.php";
require "register/connect.php"
?>
<?php
$data = $_POST;
if (isset($data['go-login'])) {
$error = array();
$user = R::FindOne('users', 'login = ?', array($data['login']));
if ($user) {
if (md5($data['password']) == $user->password) {
$_SESSION['login'] = $user;
} else {
$error[] = 'Неверный пароль!';
}
} else {
$error[] = 'Мы не нашли такого пользователя';
}
}
if (!empty($error)) {
echo array_shift($error);
}
?>
<?
if (isset($_SESSION['login'])) {
header('location:/dashboard');
};
?>
Это единственный файл где отправляется header. Подскажите в чем причина?
Ответы (2 шт):
Автор решения: Danny
→ Ссылка
Любой текст, который есть в php-файле, отправляется с заголовками (headers), поэтому перед началом php кола в тегах <? ... ?> не должно быть ничего, в том числе лишних пробелов.
Автор решения: Трудных
→ Ссылка
Нужно заменить блок кода
<?
require "register/rb.php";
require "register/connect.php"
?>
<?php
$data = $_POST;
на
<?
require "register/rb.php";
require "register/connect.php"
$data = $_POST;
так как работа PHP-интерпретатора заканчивается на закрытии тега ?> - все остальное текст