Страница 1 из 1
Не отображает 'cannot modify header information'
Добавлено: 26 окт 2021, 02:28
Alex-platinum
Здравствуйте!
Столкнулся с такой проблемой, когда идёт вывод html клиенту и заголовки могут отправляться и при этом
не выдаёт ошибку.
Хотелось бы видеть ошибку 'cannot modify header information — headers already sent by ...' чтобы знать наверняка где ошибка, но она игнорируется и код выполняется дальше. А на хостинге конечно выдаёт варнинг.
Т.е. данный код не выдаст никаких ошибок и выведет 123123 соответственно.
<?php
header("");
echo 123;
header("");
echo 123;
вроде как вывод ошибок включён как E_ALL, да и даже если бы вывод ошибок не был включен, то после warning'а поидее php должен вывести только '123' в данном случае.
Re: Не отображает 'cannot modify header information'
Добавлено: 26 окт 2021, 08:13
Максим
Так и должно быть.
Попробуйте такой код:
header("");
echo '123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering123output_buffering';
header("");
echo 123;
и этот код уже будет ругаться. А всё потому, что по умолчанию в PHP включён output_buffering и благодаря этой буферизации заголовки не отправляются до заполнения буфера, соответственно их можно модифицировать.
Re: Не отображает 'cannot modify header information'
Добавлено: 26 окт 2021, 12:51
Alex-platinum
Максим писал(а): ↑26 окт 2021, 08:13
Так и должно быть.
Попробуйте такой код:
header("");
...
header("");
echo 123;
и этот код уже будет ругаться. А всё потому, что по умолчанию в PHP включён output_buffering и благодаря этой буферизации заголовки не отправляются до заполнения буфера, соответственно их можно модифицировать.
Да я понимаю что это не ошибка openserver. Мне нужно было чтобы данная ошибка отображалась, чтобы при переезде проекта на хостинг не возникло проблем.
Спасибо за подсказку!
Решил проблему выключением буфера в php.ini:
;output_buffering = 4096