Ошибка: Хедер уже послан

Проблемы с установкой или работой phpBB 2.0.x? Ищите ответы здесь!
dnk
phpBB 2.0.4
Сообщения: 432
Стаж: 18 лет 8 месяцев
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Ошибка: Хедер уже послан

Сообщение dnk »

Иногда, когда возникают ошибки, связанные с кешем-перекешем появляется следующее:

Код: Выделить всё

Notice: Undefined variable: board_config in z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php on line 72
[Денвер: показать возможную причину ошибки]
Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\includes\sessions.php on line 389

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\includes\sessions.php on line 390

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\includes\sessions.php on line 394

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\includes\sessions.php on line 397

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\includes\sessions.php on line 398

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\admin\page_header_admin.php on line 143

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\admin\page_header_admin.php on line 145

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\admin\page_header_admin.php on line 146
Вопрос:
1) Что это такое в PHP?
2) Как исправить подобные ошибки (Мод admin shadow topic - мод, удаляющий через админку темы-ссылки на темы, которые были перемещены).

Добавлено спустя 6 минут 7 секунд:

Далее, если вновь зайти в скрипт admin_topic_shadow.php
число ошибок сокращается до

Код: Выделить всё

Notice: Undefined variable: board_config in z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php on line 72
Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\admin\page_header_admin.php on line 143

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\admin\page_header_admin.php on line 145

Warning: Cannot modify header information - headers already sent by (output started at z:\home\trk.ru\www\forums\admin\admin_topic_shadow.php:72) in z:\home\trk.ru\www\forums\admin\page_header_admin.php on line 146
Здесь \forums\admin\admin_topic_shadow.php on line 72 находится код:

Код: Выделить всё

if(!DISABLE_PREFERENCE_SAVING && !$board_config['gzip_compress']) ob_start();
Добавлено спустя 3 минуты 14 секунд:

Если включить gzip, то если вновь зайти в скрипт admin_topic_shadow.php отображаются иероглифы
[/code]
Аватара пользователя
Палыч
Former team member
Сообщения: 9683
Стаж: 18 лет 11 месяцев
Откуда: Питер
Благодарил (а): 1 раз
Поблагодарили: 27 раз

Сообщение Палыч »

dnk писал(а):Ошибка: Хедер уже послан
Это следствие, а не причина.
dnk писал(а): Undefined variable: board_config
А это причина. Не определена переменная $board_config
имхо
Не все то WINDOWS, что висит... phpBB только учусь.
ICQ, email, ЛС - только для личных сообщений. Вопросы по phpbb только на форумах. По найму не работаю.
dnk
phpBB 2.0.4
Сообщения: 432
Стаж: 18 лет 8 месяцев
Благодарил (а): 5 раз
Поблагодарили: 1 раз

Сообщение dnk »

Палыч писал(а): А это причина. Не определена переменная $board_config
имхо
Вся проблемная часть в admin_topic_shadow.php выглядит так:

Код: Выделить всё

/****************************************************************************
/** Includes and cookie settings (with output buffering)
/***************************************************************************/
/* Make a new output buffer for this page in order to not screw up cookie
setting.  If this is disabled, settings will NEVER be saved */
if(!DISABLE_PREFERENCE_SAVING && !$board_config['gzip_compress']) ob_start();

require($phpbb_root_path . 'extension.inc');
(file_exists('pagestart.' . $phpEx)) ? require('pagestart.' . $phpEx) : require('pagestart.inc');
require($phpbb_root_path . 'includes/functions_admin.' . $phpEx);
include_once($phpbb_root_path . 'language/lang_' . $board_config['default_lang'] . '/lang_admin_topic_shadow.' . $phpEx);
@setcookie(MOD_COOKIE_PREF_NAME, serialize($preference_cookie), time() + 31536000, $board_config['cookie_path'], $board_config['cookie_domain'], $board_config['cookie_secure']);

/* Flush the output buffer to display the page header, if the ob_start() is
removed, this one must be removed as well or strange things will happen */
if(!DISABLE_PREFERENCE_SAVING && !$board_config['gzip_compress']) ob_end_flush();
И вот из этой проблемной строки 72

Код: Выделить всё

if(!DISABLE_PREFERENCE_SAVING && !$board_config['gzip_compress']) ob_start();
я удалил

Код: Выделить всё

&& !$board_config['gzip_compress']
и ошибки исчезли.
Однако меня интересует, что в этом коде выполняют 2 функции ob_start() с которой проблемы есть с куками и ob_end_flush() с которой нет проблем?

Вернуться в «Поддержка phpBB 2.0.x»