Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Yello
Зарегистрирован: 09.03.2006 Сообщения: 107
|
Добавлено: Пн Июн 05 2006 14:36 Заголовок сообщения: PHP: "Headers allready sent" - почему? |
|
|
Вот кусок PHP, ДО которого нет ни одной ф-и вывода:
Header("Content-type: image/gif");
print("\n");
print($img);
И почему браузер отображает не картинку, а текст (содержимое этого файла)?
Догадываюсь: перед print PHP шлёт свой стандартный Header.
Но тогда как сделать, чтобы всё-таки вывести данные, отличные от text/html?
С картинкой - ладно, ее можно сделать частью HTML-документа, а если PDF... |
|
Вернуться к началу |
|
|
dipsy
Зарегистрирован: 26.01.2005 Сообщения: 424 Откуда: Н. Новгород
|
Добавлено: Пн Июн 05 2006 14:57 Заголовок сообщения: |
|
|
посмотри вот что:
- у тебя внутри php есть вкрапления html перед headers?
- может где-то стоит какое-то лишнее echo (printf) перед headers?
- после завершающего ?> не должно стоять никаких символов, в том числе пробелов. |
|
Вернуться к началу |
|
|
Yello
Зарегистрирован: 09.03.2006 Сообщения: 107
|
Добавлено: Пн Июн 05 2006 18:01 Заголовок сообщения: |
|
|
Вот содержимое этого файла скрипта (это - cgi, никакого HTML конечно нет):
#!/usr/bin/php.exe
<?php
$img=require("a3.gif");
Header("Content-type: image/gif");
print("\n");
print($img);
?>
Так что - как видишь...
Хотя - ПОНЯЛ - предпоследняя строка, убрал - заработало. Вот, значит, какая "умная" ф-я Header() - сама "\n" добавляет. |
|
Вернуться к началу |
|
|
Axon
Зарегистрирован: 31.05.2006 Сообщения: 17 Откуда: Екатеринбург
|
Добавлено: Вт Июн 06 2006 07:11 Заголовок сообщения: |
|
|
Цитата: | Вот, значит, какая "умная" ф-я Header() - сама "\n" добавляет. | Именно. Зачем Вам это нужно было делать вручную?
Да, и вообще-то директива require немного не для этого предназначена. Я бы так написал:
Код: | <?php
header("Content-type: image/gif");
readfile("a3.gif");
?> | [/code] |
|
Вернуться к началу |
|
|
|