Заголовок PHP () отправляется после выхода - PullRequest
2 голосов
/ 21 сентября 2010

До недавнего времени мой LAMP работал, как я ожидал, и использовал заголовок PHP () для перенаправления в соответствии с документацией.Из ниоткуда это изменилось.Проблема может быть замечена здесь:

<html>
<head>
<title> BLAH </title>
</head>

<body>
<p> TEXT </p>
<?php
 echo "BLAH BLAH BLAH";
 sleep(10);
 header("Location: http://example.com");
?>
</body>
</html>

Насколько я знаю, перенаправление не должно происходить - но это происходит.Я попытался повторить, добавив HTML, ожидая, чтобы избежать любых возможных условий гонки, но все безрезультатно.Когда я захожу на эту страницу, выходные данные не отображаются, и через 10 секунд меня перенаправляют.

Мне не очень повезло с поиском в Интернете, поскольку у большинства людей возникла совершенно противоположная проблема, и я не нашел ничего полезного влоги сервера.Я не делал никаких изменений конфигурации или обновлений пакетов.Люди, которых я спрашивал, были также озадачены.

Я использую PHP 5 и Apache 2 на виртуальной машине CentOS.

PS: Мой первый вопрос здесь, но чтение этого сайта помогло мне многимраз, и я просто люблю это :).

1 Ответ

1 голос
/ 21 сентября 2010

Спасибо, Рауль, вот и все.

Я полностью забыл, что до ВМ я работал на другом компьютере Debian. И, конечно, его php.ini по умолчанию отличался от CentOS. У Debian было output_buffering = Off, в то время как CentOS был установлен на 4096. Также на ВМ были отключены ошибки PHP.

Еще раз спасибо, ребята, очень обнадеживает знание того, что это не неясность языка или неуловимый недостаток дизайна. Приветствия.

...