Код: Выделить всё
include('includes/header.html');
echo "";
if (!ISADMIN && !(isset($_SESSION['id']) && isset($_GET['id']) && $_SESSION['id'] == $_GET['id'])) {
@require('includes/login_functions.inc.php');
redirect_user(''); // Redirects successfully
}
Код: Выделить всё
header("Location: $url")
Заголовки уже отправлены, а HTML уже был как динамически через PHP, так и статически через HTML, напечатанный на странице. Однако, согласно условию, пользователь все равно перенаправляется, если условие возвращает true. Причина этой проблемы заключается в том, что когда я пытаюсь воспроизвести ее в новом файле, я получаю ожидаемую ошибку:
Предупреждение: невозможно изменить информацию заголовка — заголовки уже отправлены (вывод начинается с
Кроме того, я получаю эту ошибку, как и ожидалось, без условия, просто вызывая redirect_user().
Каталог include находится на GitHub репозитория. Страница на активном сайте — http://www.bforborum.com/test
Edit
Я обнаружил, что выходная буферизация включена, и я отключил ее, но безрезультатно. Если для этого параметра установлено значение 0, все перенаправляется независимо от того, отправляются ли заголовки
Подробнее здесь: https://stackoverflow.com/questions/584 ... -page-load
Мобильная версия