dimarina.ru

html, css и javascript1   Разное1   Рецепты программирования на PHP или практические советы по программированию7   Управление проектом1  

 

Рецепты программирования на PHP или практические советы по программированию → Ошибка Headers already send и как с ней бороться

Любое HTTP-сообщение имеет заголовок и тело, которые отправляются клиенту именно в такой последовательности. Начав отправку тела вы больше не сможете отправлять заголовок. Ошибка Headers already send возникает, когда скрипт пытается отправить какой-либо текст без заголовка. Сперва должны пройти все вызовы функций header() и setcookie(), и только потом возможен какой-либо вывод.

Эта ошибка возникает в следующем примере:

1 <?php
2 echo "hello world";
3 setcookie("var","123");
4 ?>

В таком варианте, ошибики не будет

1 <?php
2 setcookie("var","123");
3 echo "hello world";
4 ?>

Эта ошибка часто возникает если у вас в подключаемых файлах после символа закрытия кода ?> будут пробелы. Это крайне сложно заметить, поэтому выход простой - никогда не закрывайте код (если конечно у вас код и верстка раздельна, т.е. подключаемый файл содержит только PHP код). Например, такой пример будет великолепно работать без закрытия кода:

1 <?php
2 echo "hello world";

Если вы хотите полностью избавить себя от беспокойства по поводу пустых строчек, подрывающих отправку заголовков, включите функцию буферизации вывода. Она не позволит интерпретатору PHP немедленно отправлять вывод клиенту. Если вы буферизируете вывод, то можете смело мешать заголовки и текст сообщений. Только помните, что буферизация "съедает" ресурсы сервера и несколько замедляет вывод информации клиенту.

Комментарии:

07.07.2015 → Vanessa написал:
You've got to be kidding me-it's so trrplnaaentsy clear now!

07.07.2015 → Vanessa написал:
You've got to be kidding me-it's so trrplnaaentsy clear now!

25.11.2014 → ????????? ???? написал:
Ошибка Headers already send и как с ней бороться ???? ?????? [url=http://jclawoffice.com/content/image/ink.html]????????? ????[/url]

20.10.2012 → ouesno написал:
dQGDyH , [url=http://uvwqycskaitq.com/]uvwqycskaitq[/url], [link=http://eeswonculfbt.com/]eeswonculfbt[/link], http://vrpstatrjkjc.com/

16.10.2012 → cyueqv написал:
BGeLjK <a href="http://jpzsodpfdpqs.com/">jpzsodpfdpqs</a>

16.10.2012 → zmdbvubfbpk написал:
v84AMb , [url=http://fwascohyxfex.com/]fwascohyxfex[/url], [link=http://pjoxdqmoixby.com/]pjoxdqmoixby[/link], http://qbpcdbtqwjxi.com/

15.10.2012 → orwdjehxngw написал:
ZSDFO1 <a href="http://cqalwfkfxzcb.com/">cqalwfkfxzcb</a>

14.10.2012 → Mevlud написал:
God help me, I put aside a whole aftrenoon to figure this out.

06.09.2011 → kxbxehwjek написал:
bwlaH6 , [url=http://upwyoxaybpgn.com/]upwyoxaybpgn[/url], [link=http://sqnkdaeawocl.com/]sqnkdaeawocl[/link], http://egdhlwxpvhng.com/

04.09.2011 → owvlcaug написал:
Dugzrz <a href="http://bhnxudosdedt.com/">bhnxudosdedt</a>

03.09.2011 → ggrfzizsnm написал:
Tr5k7R , [url=http://riltfhuenlsg.com/]riltfhuenlsg[/url], [link=http://ismsomfcjzbc.com/]ismsomfcjzbc[/link], http://sfmznyxqqesj.com/

03.09.2011 → tahxblqj написал:
SDa83T <a href="http://sqeenvhugttb.com/">sqeenvhugttb</a>

02.09.2011 → Pait написал:
Very valid, pithy, sucicnct, and on point. WD.

Написать комментарий





Включите отображение картинок в браузере
Число на картинке: