Вопрос по графике в php, заголовки

12 3
Segey
На сайте с 23.08.2005
Offline
404
1498

Давно работал с ней один раз, так и позабывал все :(

Есть скрипт, где внутри него идет обработка графики. Заголовок внутри работать не хочет, но если послать его сначала, то ничего не отображается и получаю только урл на эту страницу. Заголовок верный. Но самое главное я видел скрипт, где динамично после получения картинки определяется тип и составляется заголовок, так бы было удобнее, но я получаю:

Cannot modify header information - headers already sent by (output started at
Brexit - уже совсем рядом. (https://about-this-model.blogspot.com/2019/03/brexit.html)
[Удален]
#1

что-то в скрипте печатается до вывода заголовков. Перед заголовками ничего не должно выводится на печать. Посмотрите наличие echo перед header или может просто паразитный пробел какой до кода.

А лучше скрипт в студию - сразу увидим что не так.

Dalim
На сайте с 13.01.2006
Offline
47
#2

Еще можно сделать буфер вывода ob_start() и вконце ob_flush() и тогда можете хоть в конце заголовки и куки слать.

Segey
На сайте с 23.08.2005
Offline
404
#3

Dalim,

А можно поподробнее как это делается и чем ф-и занимаются?

javadf,

Вот начало кода:

<?php

header("Content-type: image/jpeg");

include("\menu.php");

?>

Дальше естественно вывод в браузер есть, потом начинается обработка картинки и попытка вывести ее на экран, но ничего кроме урла я не получаю. Когда пробовал первый раз я делал просто сткрипт, которому передавалась информация в get и он только из работы с графикой и состоял, но это я так пробовал просто, а тут он внутри основного кода...

content
На сайте с 23.01.2006
Offline
103
#4

Segey, вы бы показали содержимое menu.php на всякий случай.

А вы под винду кодируете? Это я про слеш "\" отличающийся от привычного юниксоидного перед menu.php.

Segey:
Dalim,
А можно поподробнее как это делается и чем ф-и занимаются?

javadf,
Вот начало кода:
<?php
header("Content-type: image/jpeg");
include("\menu.php");
?>

Дальше естественно вывод в браузер есть, потом начинается обработка картинки и попытка вывести ее на экран, но ничего кроме урла я не получаю. Когда пробовал первый раз я делал просто сткрипт, которому передавалась информация в get и он только из работы с графикой и состоял, но это я так пробовал просто, а тут он внутри основного кода...
JonNiBravo
На сайте с 21.05.2006
Offline
52
#5

а как у вас графика выводится?

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

у меня так вот работает


$image = ImageCreateFrompng("img/b/$but.png");
Header("Content-type: image/png");
Imagepng($image);
Segey
На сайте с 23.08.2005
Offline
404
#6

JonNiBravo,

У меня тоже так, вот только вся загвоздка в том, например на phpclub в статье заголовки тоже так просто и передаются:

http://phpclub.ru/detail/article/dynamic_image#creating

Котеров в книге по php4 пишет так же, но заголовки то не передаются.

Я хочу теперь сделать перед выводом картинки ф-и как Dalim, предлагал и потом опять заголовок с выводом текста:

     header("Content-type: image/png");

imagepng($tmp);
header("Content-type: application/form-data");

content

Он большой очень 50\50 html и php код, там у меня еще ф-и пока лежат, поэтому особого смысла нет т.к. это много страниц. действительно это WIN

p.s. Одного непонимаю, почему везде все заголовки без проблемы выводят перед самой картинкой и не следят за тем, что заголовок у них непонятно где...

JonNiBravo
На сайте с 21.05.2006
Offline
52
#7

попробуйте закомментировать заголовки и вывод графики и посмотреть что скрипт выдаст. если выдаст какой-либо текст значит ищите откуда он вылазит и убивайте баг

content
На сайте с 23.01.2006
Offline
103
#8

Segey, ок, как минимум в строке "Cannot modify header information - headers already sent" должно содержаться имя скрипта с багом и строка, выдающая ошибку.

Segey
На сайте с 23.08.2005
Offline
404
#9

content,

Это собственно и есть строка с заголовком...

content
На сайте с 23.01.2006
Offline
103
#10

Segey, ну не верю я, что у меня лыжи не едут... :)

А сам скрипт, у которого начало: <?php header("Content-type: image/jpeg"); никуда не инклудится? Он и есть основной? Я даже уточню, перед этой строкой с заголовком точно ничего не отрабатывает?

На всякий случай поставьте в комменты /* include("\menu.php"); */ и поглядите, чего выйдет при запуске скрипта.

Да, еще, включите весь возможный рипортинг, самой первой строкой скрипта поставьте: error_reporting(E_ALL);

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий