Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Направте на путь истенный с header ("Content-type: image/png"); / 15 сообщений из 15, страница 1 из 1
13.05.2011, 11:13
    #37258589
vavich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
Всем доброго дня.

Помогите встать на правильный путь.
Есть скелет станицы, и от выбора в меню добавляется разный контент и в одном из пунктов меню имеется вывод картинки созданной PHP GD, знаю что перед header не должно быть вывода или он должен быть буферизарован ob_start(), при выводе картинки (формирование изображения в отдельном файле image.php) пишет:

Изображение не может быть показано, так как содержит ошибки.

Собственно и сам вопрос как мне вывести изображение
т.е. применить буферизацию всего сайта, но как то глупо звучит
Код: plaintext
1.
2.
3.
 ob_start () 
//код сайта
 ob_end_flush ();
//вывод изображения из site1.php 
и если так нужно делать тогда как организовать ob_end_flush(); если в 1.php
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 switch  ($id)
{
	 case   2 ;
	     include  'modules/site1.php';
		 break ;
	 case   3 ;
	     include  'modules/site2.php';
		 break ;
	 case   4 ;
	     include  'modules/site3.php';
		 break ;
	 default ;
	     include  'modules/site1.php';
		 break ;
}
site1.php
Код: plaintext
1.
2.
3.
//имеется вывод данных
//ob_end_flush();
//вывод изображения
исходя из этого в начале каждого файла site2.php ..... siteN.php прописывать ob_end_flush();
я правильно понимаю (хотя как то не очень все это)

так же пробовал include 'image.php'; Изображение не может быть показано, так как содержит ошибки.
<img src="<?php include 'images.php';?>"> Изображение не может быть показано, так как содержит ошибки.
<img src="images.php" style="border: 1px solid #000"> Выводит пустой квадрат

если напрямую выполнить images.php то прекрасно выводится изображение, поэтому вывод ошибка с header
...
Рейтинг: 0 / 0
13.05.2011, 21:31
    #37260183
vavich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
люди и что ни кто не знает что можно сделать с выводом изображения
...
Рейтинг: 0 / 0
13.05.2011, 21:59
    #37260219
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
авторесли напрямую выполнить images.php то прекрасно выводится изображение, поэтому вывод ошибка с header

Покажите хидеры с клиента при непосредственном вызове картинки и при вызове со странички.
...
Рейтинг: 0 / 0
14.05.2011, 10:37
    #37260448
vavich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
часть ответов сервера:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    - при открытии страницы site1.php (в fiddler2 выбран ответ именно файла image.php)

                       Content-Type: text/html; charset=UTF-8

    - при прямом открытии image.php

                      Content-Length: 123
                      Content-Type: image/png

т.е. как я понял не посылается сам хедер. Это может быть связано с тем что формирование страницы происходит в

Код: plaintext
1.
2.
3.
4.
5.
6.
 ob_start ();

//формирование страницы site1.php
//формирование страницы siteN.php

$content =  ob_get_contents ();  
 ob_end_clean ();
...
Рейтинг: 0 / 0
14.05.2011, 10:39
    #37260451
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
Покажите скрипт images.php
...
Рейтинг: 0 / 0
14.05.2011, 10:51
    #37260465
vavich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
Код: plaintext
1.
2.
3.
4.
5.
6.
<?php 
 header  ("Content-type: image/png");
$im = @ imagecreate  ( 50 ,  100 ) or  die  ("Не удается открыть новую картинку!");
$background_color =  imagecolorallocate  ($im,  255 ,  255 ,  255 );
$text_color =  imagecolorallocate  ($im,  233 ,  14 ,  91 );
 imagestring  ($im,  1 ,  5 ,  5 ,  "Hello !!!", $text_color);
 imagepng  ($im);?>
...
Рейтинг: 0 / 0
14.05.2011, 11:39
    #37260507
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
А файл без BOM ?
...
Рейтинг: 0 / 0
14.05.2011, 11:43
    #37260510
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
Код: plaintext
<img src="<?php include 'images.php';?>"> Изображение не может быть показано, так как содержит ошибки.

Бред

Код: plaintext
<img src="images.php" style="border: 1px solid #000"> Выводит пустой квадрат

Ну судя по всему это и есть результат работы скрипта, а текста нет из-за несоответствия кодировок или еще чего со шрифтами.
...
Рейтинг: 0 / 0
14.05.2011, 12:12
    #37260524
vavich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
авторА файл без BOM ?
да, файл без BOM .

мне кажется не в шрифте дело т.к квадрат малевича (без шрифта) тоже не выводит. кодировки страниц тоже проверил все одинаковые.

ладно и на этом спасибо буду мудрить(искать ошибку) дальше.
...
Рейтинг: 0 / 0
14.05.2011, 12:16
    #37260529
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
автор
Код: plaintext
1.
 header  ("Content-type: image/png");
$im = @ imagecreate  ( 50 ,  100 ) or  die  ("Не удается открыть новую картинку!");

Интересно, как это в случае неудачи будет выводиться текст с "картиночным" хидером ))

авторчасть ответов сервера:

- при открытии страницы site1.php (в fiddler2 выбран ответ именно файла image.php)

Content-Type: text/html; charset=UTF-8

- при прямом открытии image.php

Content-Length: 123
Content-Type: image/png


т.е. как я понял не посылается сам хедер.

Хидер посылается. Только не Ваш, а дефолтовый. Вероятно, до выдачи Вашего хидера есть какой то вывод текста. Если даже текст явно не видим, это может быть что то вроде BOM, пробела, перевода строки и т.п.
...
Рейтинг: 0 / 0
16.05.2011, 11:15
    #37262216
vavich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
перерыл весь сайт вроде как должно работать.
если в скрипте после <?php и до ?> имеются просто пробелы отступы (для наглядности кода) это ведь не берется во внимание, вывода echo printf .... нет.

повторюсь тогда это как то может влиять, что формирование header происходит в самой буферизации
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
//скрипт index.php


// код без вывода, подключение нескольких ф. через include для проверки наличия некоторых переменных

// формируем контекст
 ob_start () 
 switch  ($id)
{
	 case   2 ;
	     include  'modules/site2.php'; 
		 break ;
	 case   3 ;
	     include  'modules/site3.php';
		 break ;
	 case   4 ;
	     include  'modules/site4.php';
		 break ;
	 default ;
	     include  'modules/site1.php';  //формирование изображения из site1.php 
		 break ;
}
$content =  ob_get_contents ();
 ob_end_flush ();

// код без вывода, подключение нескольких ф. через include для проверки наличия некоторых переменных

// формируем страницу вывода
 include  './site/sk.php'; //вывод скелета страницы (в ней же вывод контекста echo $content; 
// перед echo $content имеется вывод из-за этого была буферизация выше)
и вот в самом скрипте site1.php имеется строка <img src="images.php" style="border: 1px solid #000"> с выводом изображения (файлы хранятся в одном каталоге, поэтому пути правильные)

или все выше сказанное чушь и мне нужно искать вывод в браузер
...
Рейтинг: 0 / 0
16.05.2011, 13:11
    #37262494
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
авторперерыл весь сайт вроде как должно работать.
если в скрипте после <?php и до ?> имеются просто пробелы отступы (для наглядности кода) это ведь не берется во внимание, вывода echo printf .... нет.
В данной ситуации это касется только скрипта генерирующего изображение, не пойму чего вы ищите по всему "сайту".

автор - при открытии страницы site1.php (в fiddler2 выбран ответ именно файла image.php)

Content-Type: text/html; charset=UTF-8

- при прямом открытии image.php

Content-Length: 123
Content-Type: image/png
Как такое может быть? Серверу в данной ситуации фиолетово, откуда вы вызываете скрипт, и заголовок должен быть один.

Код: plaintext
1.
2.
3.
4.
5.
6.
<?php 
 header  ("Content-type: image/png");
$im = @ imagecreate  ( 50 ,  100 ) or  die  ("Не удается открыть новую картинку!");
$background_color =  imagecolorallocate  ($im,  255 ,  0 ,  0 );
$text_color =  imagecolorallocate  ($im,  233 ,  14 ,  91 );
 imagestring  ($im,  1 ,  5 ,  5 ,  "Hello !!!", $text_color);
 imagepng  ($im);?>

Так картинка все еще белая?
...
Рейтинг: 0 / 0
16.05.2011, 13:31
    #37262550
vavich
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
да, картинка белая и на ней красным Helo!!

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

Как такое может быть? Серверу в данной ситуации фиолетово, откуда вы вызываете скрипт, и заголовок должен быть один.

т.е. вы хотите сказать что если формируется изображение (к примеру как у меня) в скрипте images.php, то и смотреть на вывод данных и поиск ошибок нужно именно в этот скрипт и все. Я вас правильно понял?

тогда мне не совсем понятно в файле images.php больше нет ничего кроме:
Код: plaintext
1.
2.
3.
4.
5.
6.
<?php 
 header  ("Content-type: image/png",  false );
$im =  imagecreate  ( 50 ,  100 ) or  die  ("Не удается открыть новую картинку!");
$background_color =  imagecolorallocate  ($im,  255 ,  255 ,  255 );
$text_color =  imagecolorallocate  ($im,  233 ,  14 ,  91 );
 imagestring  ($im,  1 ,  5 ,  5 ,  "Hello !!!", $text_color);
 imagepng  ($im);?>
кодировка файла utf-8, галочка ВОМ снята
...
Рейтинг: 0 / 0
16.05.2011, 22:35
    #37263607
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
vavich, если это добро выложено в сети, дайте ссылку на html-страничку с этим рисунком. Попробуем глянуть, что там приходит в хидерах и в контенте.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.12.2012, 14:58
    #38090770
Roman_LUC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Направте на путь истенный с header ("Content-type: image/png");
Было такое, что выдавало ошибку и все. Решение нашлось, что при перекодировании файла index.php в начало, переп тегом "<?php" была добавлена точка))))))) Заметить сложно было)))))
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Направте на путь истенный с header ("Content-type: image/png"); / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]