PHP - Успешно отправляю заголовок header() после вывода echo()

artalex
На сайте с 08.12.2005
Offline
144
2231

Всем привет!

Вот такая ситуация возникла:

PHP скрипт:


<?php
error_reporting(E_ALL);
echo 'Blablabla'."\n";
header('Age: 120');
?>

Я ожидаю от него сообщение о том, что "headers already sent" - а все проходит без ошибок... Хедер в ответе - есть, Blabla - в теле ответа... - никаких ошибок... Собственно, у меня любой Хедер посылается успешно, уже после вывода в тело чего-либо... Как так?

Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#1

создайте файл info.php


<?php
phpinfo();
?>

Раздел "PHP CORE", директива "output_buffering". Она у Вас On или число.

Это буферизация вывода.

Подпись))
artalex
На сайте с 08.12.2005
Offline
144
#2

У меня:

output_buffering 4096

Милованов, спасибо, - пошел читать доки...

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#3

Ну так всё формируется на сервере.

Вот если вы include сделайте в начале, вот тогда пойдёт уже проблема т.к. часть скомплирована и обработана, а вы опять хотите внедриться туда.

---------- Добавлено 29.01.2013 в 01:59 ----------

Милованов Ю.С:
создайте файл info.php

<?php
phpinfo();
?>


Раздел "PHP CORE", директива "output_buffering". Она у Вас On или число.
Это буферизация вывода.

Если использовать ob_start()

А в output_buffering прописывается размер буфера этого.

Но без старта он не будет работать. Если я не ошибаюсь :)

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#4
LEOnidUKG:
Но без старта он не будет работать. Если я не ошибаюсь :)

Затестил тока что.

.htaccess


php_value output_buffering 10000

index.php


<?php
error_reporting(E_ALL);
echo 123;
session_start();
?>

Сессию стартует, 123 показывает, ошибок нет. Чищу .htaccess и сразу ошибка(вывод начат там-то, хедер ставится там-то).

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#5
Милованов Ю.С:

Сессию стартует, 123 показывает, ошибок нет. Чищу .htaccess и сразу ошибка(вывод начат там-то, хедер ставится там-то).

Хм, действительно. Это стандартный буфер, а уж ob_start это по сути тоже самое, что и output_buffering On

т.е. разрешать регулировать буфер самостоятельно.

---------- Добавлено 29.01.2013 в 02:12 ----------

Вообще не задавался такими вопросами т.к. использую активные шаблоны и ob_start() у меня первая строчка в index.php или core.php

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий