Некоторые считают, что "phpBB – жутко глючный движок". И совершенно напрасно.

dnes

Новичок
Как-то так вроде было у Козьмы Пруткова:

Если в клетке, на которой написано ЛЕВ, ты видишь кролика - не верь глазам своим.
 

Cougar

Кошак
Фанат Огромное спасибо за ссылку! Теперь я точно знаю, как избавиться от ошибки, если нет времени ковыряться в коде... :) :)
 

FreeSpace

Чукча-читатель
Сначало было очень смешно, а потом стало как-то грустно :(
 

phpBB Guru

Guest
Здравствуйте.
Увидел, что из этой темы пришло много посетителей на www.phpbbguru.net, где я админ, почитал и решил ответить.

Конечно, приведенный в статье фикс весьма условен, вот только появление сообщений он все-таки снимает. Вопрос в том, что phpBB сам по себе таких ошибок не дает - только если chmod неправильно выставить на закачку аватар. Другое дело, если кто-то решит выдать html-код раньше чем движок выдает хедеры на отправку в браузер, например забудет лишние пробелы и переводы строки в файле конфигурации, то вот вам и сообщение. Так вот, наверное вам известен такой бесплатный хостинг как amillo.net, какое-то время очень популярный, но ныне вроде как издыхающий. Этот хостер первое время вставлял свои верхние баннеры прямо при помощи апача, минуя все правильности и прочее. (Доходило до того, что и в файлы которые качались не сами по себе, а путем редиректа скриптом - ну там счетчик даунлоадов увеличить например, а потом отправить на файл - тоже вставлялся баннер). Оттуда и "Headers already sent". Потом правда они эту несусветную чушь убрали. Статья же являлась ответом на многочисленные вопросы пользователей этого хоста вроде "а что это у меня там такое выскочило" и контмерой против абсолютно нетехничных действий хостера. Кстати, сам фикс на самом деле придуман не нами, а пользователями с интернационального форума на www.phpbb.com - забугорные фри-хосты иногда тоже так пакостят. И естественно, если не знать предысторию, статья покажется трудом великого ламера Васи Пупкина.

Хотя, все равно спасибо - ваш здоровый смех послужил сигналом того, что статью следует дополнить описанием причины проблемы - выхода хтмл раньше заголовков. Чтобы смеха больше не было. :)

За сим откланяюсь. На ветку подписываюсь, так что если есть что сказать - комментарии принимаются.
 

Crazy

Developer
phpBB Guru, после такой статьи профессионалу осталось бы только сделать сеппуку. Поскольку отмыться иным путем уже невозможно.
 

Cougar

Кошак
phpBB Guru
В случае с "нехорошим" хостером, пихающим баннеры посредством апача, правильным будет использовать буферизацию вывода, а не "замалчивание" ошибок.
 

phpBB Guru

Guest
Originally posted by Crazy
phpBB Guru, после такой статьи профессионалу осталось бы только сделать сеппуку. Поскольку отмыться иным путем уже невозможно.
Если не секрет, что это такое?

Cougar
А что вы предлагает буферизировать в таком случае (перевод каретки перед началом кода не лишний?

PHP:
<?php
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
?>
Или так:

PHP:
banner
<?php
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
?>
Именно вот так криво действуют фри-хосты. Видимо, против лома нет приема.

Об этой ошибке можно умолчать - проблемы с аватарами вычислятся по отвутствии прав при попытке работы с загруженным файлом. Это те два случая, в которых она может появиться.
 

Фанат

oncle terrible
Команда форума
phpBB Guru
Мы предлагаем не писать таких статей вовсе.
Где "решением" проблемы является засовывание головы в песок.
Где разглагольствуется о безглючности движка, и рекомендуется посадить глюк своими руками.
Где ответ на проблему, описанную с таким пафосом, равнозначен стиранию этих строчек вообще.
 

phpBB Guru

Guest
Это конечно правильно, но статья уже написано. В таком случае у меня возникает вопрос: что можно зделать здесь:
PHP:
banner 
<?php 
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 
?>
... не трогая:
PHP:
banner 
<?php
Есть предложения?
 

Crazy

Developer
Автор оригинала: phpBB Guru
Если не секрет, что это такое?
Я и не думал, что это такой запущенный случай...

Сеппуку -- это специальная лечебная процедура, предназначенная для оздоровления генофонда человечества. Подробности см. на http://www.google.com/ (ты, наверное уже слышал слово "гугл" -- так это именно он).
 

phpBB Guru

Guest
Originally posted by Crazy
(ты, наверное уже слышал слово "гугл" -- так это именно он).
Давайте прекратим иронизировать, сейчас я задал вполне конкретный вопрос - как можно избежать сообщений о невозможности отсылки заголовков при таком коде?

PHP:
banner 
<?php 
header ('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); 
?>
Если вы столь компетентны, что даже можете шутить, я думаю ответить на этот вопрос для вас труда не составит. Мне кажется, единственный выход - убрать отсылку хедера вообще или погасить сообщение об ошибке; с удовольствием выслушаю ваше мнение.
 

neko

tеam neko
Мне кажется, единственный выход - убрать отсылку хедера вообще или погасить сообщение об ошибке
ты в курсе что это абсолютно идентичные "решения", которые ничему не помогают в данном случае?
 

Demiurg

Guest
как завести машину у которой двигатель не работает ?
 

phpBB Guru

Guest
Да, я в курсе, что они не помогут заголовку отослаться, но по крайней мере пользователь не получит сообщений об ошибке. Зачем оно ему, если он все равно ничего не сможет сделать?
 

Crazy

Developer
Автор оригинала: phpBB Guru
Если вы столь компетентны, что даже можете шутить,
Я предложил тебе сделать сеппуку абсолютно серьезно. Точнее, предложил бы, если бы ты не был ламером.

А так -- все равно же не сделаешь...

я думаю ответить на этот вопрос для вас труда не составит.
Разумеется.

Мне кажется, единственный выход - убрать отсылку хедера вообще или погасить сообщение об ошибке; с удовольствием выслушаю ваше мнение.
Правильный ответ: заработать $5 и купить хостинг в нормальном месте. При невозможности заработать $5 -- пойти и сделать сеппуку.
 

fixxxer

К.О.
Партнер клуба
кстати, гавно хедеры. без must-revalidate кэшироваться на некоторых проксях все равно будет.
 

ForJest

- свежая кровь
Правильный ответ: заработать $5 и купить хостинг в нормальном месте. При невозможности заработать $5 -- пойти и сделать сеппуку.
Он всё равно не может позволить себе нужных для этого инструментов :))
Я вообще как-то не верил, что всё было написано серьёзно... Но оказывается всё так бывает запущено...
phpBB Guru
Я конечно считаю, что сепуку будет хорошим выходом тоже. Но из привычки к гуманизму я бы посоветовал настроить буферизацию вывода, как посоветовал Cougar.
Это сложное понятие из двух слов.
output_buffering
буферизация вывода
http://phpfaq.ru/headers
 
Сверху