Можно ли вывести хоть какую то информацию на экран перед header() ? (php)

IF

else
Можно ли вывести хоть какую то информацию на экран перед header() ? (php)

Многим известны грабли, если перед header() идёт какой-то вывод на экран (а порою и просто пустая строка в коде) php пишет: Cannot modify header information - headers already sent by
Можно, конечно, сделать промежуточную страницу для вывода, где будет написана информация (например об успешной записи в базу), а уж с неё делать ещё один переход, к примеру на главную страницу. Но есть ли способ изящнее, можно ли вывести инфу на странице, где есть header ?
 

Фанат

oncle terrible
Команда форума
скорее, до посинения надо читать http://phpfaq.ru/na_tanke

IF
1. это невозможно в первую очередь с точки зрения здравого смысла. и только потом - сточки зрения технологии.

Но есть ли способ изящнее
есть.
делать промежуточную страницу для вывода, где будет написана информация (например об успешной записи в базу),
и НИКУДА С НЕЁ НЕ БЕГАТЬ, как сопливый дошкольник на переменке.
когда клиент сочтёт нужным - он сам с неё перейдёт, куда надо.
 

HEm

Сетевой бобер
PHP:
if (!mysql_query($query)) { $mes .= "Опаньки, запрос не удался!"; } else { $mes .= "Все получилось!"; }
header(.....);
include("head.inc.php");
echo $mes;
...
 

Фанат

oncle terrible
Команда форума
HEm
это ты к чему? Это первому несчастному написано, или второму?

-~{}~ 16.11.05 10:20:

для всех, кто ещё будет писать в этот топик.
header, который аффтар имеет в виду - это LOCATION
он просто других не знает, и поэтому опускает тип заголовка, считая, что он сам собой разумеется.

не абстрактный заголовок, а именно Location.
И задачу его надо рассматривать именно с это точки зрения: сначала вывести какой-то текст, а потом послать локейшен.

просто он НЕ ПОНИМАЕТ, что то, как он хочет - это и есть послать локейшен на страницу, на которой он и волен выводить, что ему захочется. И в поисках выдуманной изящности находит маразм.
 

HEm

Сетевой бобер
Первому. Ну я самонадеянно допустил, что он знает кроме Location еще какие-то заголовки, хотя, скорее всего, ты, Фанат, прав.
 

Фанат

oncle terrible
Команда форума
а уж с неё делать ещё один переход
ЕЩЁ ОДИН переход.
То есть ОДИН уже БЫЛ.
то есть, был хидер и был переход.
то есть, был перезод хидером.
то есть, был локейшен.

автор имеет в виду именно локейшен.
 

HEm

Сетевой бобер
На всякий случай добавлю, что переход можно делать не только через header() но и метатегом Content-Refresh с задержкой, достаточной для того, чтобы можно было успеть прочитать сообщение об успешно выполненной операции. В случае же если операция не была выполнена, то про переходы можно вообще забыть
 

Фанат

oncle terrible
Команда форума
НЕТ, НЕЛЬЗЯ.
сделай локейшен - а потом выводи всё что хочешь.
хоть рефреш, хоть текст, хоть фотографию папы римского
 

3D

Новичок
Есть вариант обойти header:

echo '<script language=JavaScript type=text/JavaScript> location ="index.html";</script>';
 

Фанат

oncle terrible
Команда форума
НЕТ, это не вариант.

обходить хидер мало того, что, неправильно, но это НЕ ИМЕЕТ СМЫСЛА.
сделайте перенаправление, и после этого уже пишите какие угодно фваскрипты и любой подобный бред.
 
Сверху