Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Несколько заголовков. Как?
 
 автор: Annihilator   (09.11.2004 в 20:37)   письмо автору
 
 

Мне нужно выводить в броузер динамически уменьшенные изображения.
Всё сделал, картинки формируются, но когда я посылаю заголовок перед выводом картинки
header ("Content-type: image/jpeg");
imagejpeg($dst_im,'',$quality);
, броузер выдает мне такое сообщение: "Warning: Cannot modify header information - headers already sent by (output started at /usr/home/hosting/apache/draft1/flowerpot/index.php:28) in /usr/home/hosting/apache/draft1/flowerpot/var.php on line 79"
Почему он не хочет принимать несколько заголовков и как это обойти?

   
 
 автор: cheops   (09.11.2004 в 20:55)   письмо автору
 
   для: Annihilator   (09.11.2004 в 20:37)
 

Хм... а что находится в28 строке файла index.php?

   
 
 автор: Annihilator   (09.11.2004 в 21:05)   письмо автору
 
   для: cheops   (09.11.2004 в 20:55)
 

Там находится мета-тэг заголовка страницы: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

   
 
 автор: cheops   (09.11.2004 в 21:22)   письмо автору
 
   для: Annihilator   (09.11.2004 в 21:05)
 

Дело в том, что все заговки отправляются перед любыми данными - когда в окно браузера осуществляется вывод - заголовки уже сформированы и отправлены - после этого уже заголовки отправить нельзя. Если нет возможности отправить все заголовки до вывода в браузер необходимо задержать вывод при помощи функций управления выводом http://www.softtime.ru/group/id_group=12

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=148

   
 
 автор: Annihilator   (09.11.2004 в 21:53)   письмо автору
 
   для: cheops   (09.11.2004 в 21:22)
 

А как же тогда осуществить вывод изображений в поток с помощью функции imagejpeg() ?

   
 
 автор: glsv (Дизайнер)   (09.11.2004 в 22:15)   письмо автору
 
   для: Annihilator   (09.11.2004 в 21:53)
 

А вы не выводите непосредственно в браузер, а сохраняйте в файл, запоминайте это имя файла и используйте тег <img>.

   
 
 автор: Annihilator   (09.11.2004 в 22:31)   письмо автору
 
   для: glsv (Дизайнер)   (09.11.2004 в 22:15)
 

Так-то оно конечно проще. Но у меня 4 разных вариантов размера картинки + оригинал. Мне не хочется хранить все 5 картинок к каждому продукту (их около 3000 в БД) - итого 15000 файлов! Рационально хранить одну исходную фотку и уже на лету изменять её под нужный размер. Функцию я уже написал, осталась проблема с выводом в броузер. Ведь наверняка подобный подход уже много раз осуществлялся. Кто знает как?

   
 
 автор: glsv (Дизайнер)   (10.11.2004 в 00:15)   письмо автору
 
   для: Annihilator   (09.11.2004 в 22:31)
 

Хм... тогда, видимо, придется использовать для этого один временный файл, куда вы будете писать все временные копии изображений.

   
 
 автор: glsv (Дизайнер)   (10.11.2004 в 00:21)   письмо автору
 
   для: Annihilator   (09.11.2004 в 22:31)
 

Ага вот в чем хитрость.

Вынесите код создающий графические файлы в отдельный файл.
А на страницу с кодом HTML, подключайте это следующим образом.


<img src="fileFromGD.php">


Этому скрипту (fileFromGD.php) в качестве параметра можно передавать имя файла, для которого нужно создать копию.

<img src="fromjpeg.php?file=test.jpg">

   
 
 автор: elenaki   (10.11.2004 в 10:11)   письмо автору
 
   для: glsv (Дизайнер)   (10.11.2004 в 00:21)
 

а еще можно обойтись без заголовков (Старая Заголовконенавистница) :)

   
 
 автор: Annihilator   (10.11.2004 в 13:39)   письмо автору
 
   для: glsv (Дизайнер)   (10.11.2004 в 00:21)
 

Спасибо, получилось! Если в отдельном файле, то работает.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования