Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Cannot modify header information - headers already sent by
Форумы портала PHP.SU » » Вопросы новичков » Cannot modify header information - headers already sent by

Страниц (2): [1] 2 »
 

1. _Dark_ - 07 Октября, 2011 - 18:57:55 - перейти к сообщению
Добрый всем вечер, возникла проблема с редактированием заголовков. Почему она возникла - понятия не имею А?!

Вот код скрипта:

CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. define('H', $_SERVER ['DOCUMENT_ROOT']); // корневая директория сайта
  3. define('_IN_SYSTEM_', true);
  4. require_once H . '/system/core.php';
  5. require_once H . '/design/header.php';
  6. header('location:/');
  7. require_once H . '/design/footer.php';
  8. ?>

Возникается ошибка:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Warning: Cannot modify header information - headers already sent by (output started at T:\home\test1.ru\www\design\header.php:19) in T:\home\test1.ru\www\user\login.php on line 6

Вот код header.php:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?
  2. echo <<<HTML
  3. <!DOCTYPE html>
  4. <html>
  5. </html>
  6. <head>
  7.         <title>{$page['title']}</title>
  8.         <meta http-equiv='Content-Type' content='text/html; charset=UTF-8'>
  9.         <link rel='stylesheet' type='text/css' href='/design/default/style.css'>
  10.         <link rel='shortcut icon' type='image/x-icon' href='themes/standart/images/favicon.ico'>
  11. </head>
  12. <body>
  13. <div id='header'>
  14.        
  15.         <span style = 'text-shadow: white 1px 1px 2px, #F6FF00 0 0 1em; color:#A34198; font-size: 9em;'>DarkWorld</span> <br>
  16.         <span style = 'text-shadow: white 1px 1px 2px, #F6FF00 0 0 1em; color:#00EB4A; font-size: 6em;'>interactive</span>
  17. </div>
  18. HTML;//Ошибка здесь (?!)
  19.  
  20. require_once 'sidebar.php';
  21.  
  22. echo <<<HTML
  23. <div style='margin-left: 210px;'>
  24.         <div id='content'> HTML;
  25. ?>


Оба файла в UTF-8 без BOM.

Ругается на любой тег Heredocument
типа
PHP:
скопировать код в буфер обмена
  1. <<<CODE
  2. CODE;//ошибка

Почему так?
2. caballero - 07 Октября, 2011 - 19:04:23 - перейти к сообщению
пробелы убери перед <?php
3. _Dark_ - 07 Октября, 2011 - 19:05:00 - перейти к сообщению
В том то и дело, что их там нет.
4. DeepVarvar - 07 Октября, 2011 - 19:09:09 - перейти к сообщению
_Dark_ вчитайтесь в строки 5-6 вашего самого первого куска кода.
(Добавление)

Видимо всетаки солнечные бури
5. _Dark_ - 07 Октября, 2011 - 19:12:21 - перейти к сообщению
DeepVarvar пишет:
_Dark_ вчитайтесь в строки 5-6 вашего самого первого куска кода.

Т.е. перед header вообще никакого HTML не должно быть?
6. DeepVarvar - 07 Октября, 2011 - 19:13:31 - перейти к сообщению
да
7. _Dark_ - 07 Октября, 2011 - 19:15:34 - перейти к сообщению
Извиняюсь за возможно глупый вопрос, я с PHP начал работать совсем недавно, но как тогда отобразить дизайн с ошибкой, если HTML перед header запрещен? Огорчение
8. Champion - 07 Октября, 2011 - 19:16:02 - перейти к сообщению
_Dark_, я могу предположить(даже не знаю, почему мне так кажется), что перед сланьем заголовков в одном (неизвестном) инклюдящемся файле что-то выводилось в браузер. И буфер после этого не сбрасывался
9. _Dark_ - 07 Октября, 2011 - 19:20:00 - перейти к сообщению
Champion пишет:
_Dark_, я могу предположить(даже не знаю, почему мне так кажется), что перед сланьем заголовков в одном (неизвестном) инклюдящемся файле что-то выводилось в браузер. И буфер после этого не сбрасывался

Ничего вообще не отправлялось, до header.php вообще нигде вывода в браузер нет.

Как тогда можно вначале отобразить дизайн, текст и переадресовать пользователя?
(Добавление)
Я решил проблему следующим образом:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <?php
  2. define('H', $_SERVER ['DOCUMENT_ROOT']); // корневая директория сайта
  3. define('_IN_SYSTEM_', true);
  4. require_once H . '/system/core.php';
  5. require_once H . '/design/header.php';
  6. header('location:/');
  7. require_once H . '/design/footer.php';
  8. ?>

это правильно?
10. Champion - 07 Октября, 2011 - 19:37:10 - перейти к сообщению
_Dark_ пишет:
Ничего вообще не отправлялось, до header.php вообще нигде вывода в браузер нет.
_Dark_ пишет:
require_once H . '/design/header.php';
header('location:/');
_Dark_ пишет:
Вот код header.php:
CODE (htmlphp):
скопировать код в буфер обмена

<?
echo <<<HTML
_Dark_ пишет:
вначале отобразить дизайн, текст и переадресовать пользователя?

1 - зачем что-то отображать, чтобы потом пренаправить?
2 - если всё же надо, то яваскрипт. Яндекс->яваскрипт редирект
3 - поглядите про ob_start и компанию
11. _Dark_ - 07 Октября, 2011 - 19:39:11 - перейти к сообщению
Champion пишет:
1 - зачем что-то отображать, чтобы потом пренаправить?

Что бы вначале написать зачем перенаправляем Улыбка
Champion пишет:
2 - если всё же надо, то яваскрипт. Яндекс->яваскрипт редирект

Он не универсален. К примеру, есть товарищи у которых он выключен, а про мобильные браузеры я вообще молчу.
Champion пишет:
3 - поглядите про ob_start и компанию

Код который я написал выше можно считать верным?
12. Champion - 07 Октября, 2011 - 19:40:14 - перейти к сообщению
_Dark_ пишет:
Я решил проблему следующим образом:
А, вот кака раз) Если работает так, как ожидаете, то правильно
13. _Dark_ - 07 Октября, 2011 - 19:41:42 - перейти к сообщению
Champion пишет:
А, вот кака раз) Если работает так, как ожидаете, то правильно

Да, все работает как нужно. Никаких ошибок нет, спасибо за помощь Улыбка
14. Champion - 07 Октября, 2011 - 19:41:48 - перейти к сообщению
_Dark_ пишет:
Он не универсален. К примеру, не у всех он включен.
ну сейчас уже не стоит подтраиваться под тех, у кого он отключен. Редирект делается вполне универсально.
_Dark_ пишет:
Что бы вначале написать зачем перенаправляем
Прочитать не успеют) А если через js, то можно задержку сдлать
15. _Dark_ - 07 Октября, 2011 - 19:44:08 - перейти к сообщению
Champion пишет:
Прочитать не успеют) А если через js, то можно задержку сдлать

Задержку тоже можно указать Улыбка

 

Powered by ExBB FM 1.0 RC1