За последние 24 часа нас посетили 22044 программиста и 989 роботов. Сейчас ищут 662 программиста ...

Проблема с header("Content-type: image/png");

Тема в разделе "PHP для новичков", создана пользователем anadonam, 11 янв 2020.

Метки:
  1. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    Во всех примерах по работе с картинками нужно ставить первым делом
    функцию header("Content-type: image/png");

    ну вот пример


    Код (Text):
    1. <?php
    2. header("Content-type: image/png");
    3. $img = imagecreate(320, 240);
    4. $background_color = imagecolorallocate($img, 155, 255, 255);
    5. $text_color = imagecolorallocate($img, 233, 14, 91);
    6. imagestring($img, 2, 5, 5, "This is example", $text_color);
    7. imagepng($img);
    8. imagedestroy($img);
    9. ?>
    но как только ее ставлю монитор превращается в черный экран и чтобы не делал дальше тишина (скрин)

    а если убрать то аброкозябры
    я так понимаю это код файла картинки - но мне не надо пока что сохранять мне надо видеть прежде что получилось..
    вопрос = как жить ? :(
    что можно сделать..

    все все все все примеры которые только нашел- итог один и тот же.. (черный мертвый экран).
     

    Вложения:

  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.822
    Симпатии:
    736
    Адрес:
    Татарстан
    Жить - вдумчиво надо...
    По остальному - вывод изображения идёт, может только не то что ожидаете, ванную что цвет текста сливается с черным фоном или номер шрифта 2 у вас недоступен, или размер его мал....поэксперементируйте
     
  3. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @anadonam, как ты вызываешь/используешь этот файл?
     
  4. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    в описании примера что итогом должна появится картинка на экране с заданным текстом... (но ничего нет). и он не один - я штук 15 перепробовал (примеров интернете много - по запрос текст в картинку (php)) - у всех одно и тоже.. - но вот про такую проблему ответа не могу найти.
    @Valick я ничего пока не используя я пытаюсь хоть что то запустить найти рабочий скрипт: , чтобы начать с него изучать эту библиотеку... цель:
    делать себе на сайте вот такое (ну в смысле подобное).. задача не срочная но на ближайшее будущее.
    (ничего нового в плане идеи, просто другой стиль контента)
    [​IMG]
    --- Добавлено ---
    так
    И вот опять
    прощу прощения господа
    Но запустил на local на Денвере и оно сработало (я что то сразу стормозил ...)
    да появился квадрат с надписью!

    то еть
    опять
    или кодировка
    это еще может быть особенности алгоритма движка...... (у меня все запросы url редиректит на index.php)

    да вот возникает вопрос по кодирвке - потом будет еще вопросик
    пока хватит нужно то на что получил ответ разобраться потестить - не скучаю :)
     
  5. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Этот скрипт надо вызывать параметром html тега img. Прописываешь адрес этого скрипта вместо адреса обычной картинки.
     
  6. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    так
    И вот опять
    прощу прощения господа
    Но запустил на loccal на Денвере и оно сработало (я что то сразу стормозил ...)
    да появился квадрат с надписью!

    то еть
    опять
    или кодировка
    это еще может быть особенности алгоритма движка...... (у меня все запросы гкд редиректит на index.php)
    @Valick в смысле ссылку на файл php с этим скриптом давать ?????
     
  7. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
  8. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    @Valick не хочется конечно казаться тупым но я ничего не понял., как это вызывать не функцию не что то с расширением ...
     
  9. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    @anadonam, если не хочешь быть тупым, то забей на форумы до поры до времени и читай книги.
    Че Че понимать? Ты в нтмл тэге прописываешь что? Адрес картинки. Что тебе мешает прописать туда адрес скрипта? ( который отдаёт что? КАРТИНКУ!)
     
  10. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    я просто не понял в чем может быть разница если оно не работает.
    тут уж куда не вставяй работать не будет

    Код (Text):
    1. <html>
    2. <head>
    3. <title>
    4. dano.anonado.ru</title>
    5. </head>
    6. <body>
    7. <img src="/pic.php"  width="1350" height="850">
    8. <center>
    9. <br><br><br><br>
    10. <table>
    11. <tr><td>This is a placeholder for the subdomain <b>dano.anonado.ru</b></td></tr>
    12. </table>
    13. <br><br>
    14. </center>
    15. </body>
    16. </html>
    -----------
    Код (Text):
    1. <?php
    2. header("Content-type: image/png");
    3. $img = imagecreate(320, 240);
    4. $background_color = imagecolorallocate($img, 155, 255, 255);
    5. $text_color = imagecolorallocate($img, 233, 14, 91);
    6. imagestring($img, 2, 5, 5, "This is example", $text_color);
    7. imagepng($img);
    8. imagedestroy($img);
    9. ?>
    результат (временно видно - я попозже удалю этот нерабочий сткрипт)
    https://anonado.ru/dano/

    напомню. а должны видеть картинку с надписью.
    --- Добавлено ---
    я вот чего не понял
    - теперь даже на локальном сервере не работает и пишет
    Код (Text):
    1. Warning: Cannot modify header information - headers already sent by (output started at Z:\home\test2.ru\www\index.php:9) in Z:\home\test2.ru\www\index.php on line 10
    в строке и стоит код header (если что)
    --- Добавлено ---
    Вот пока это php5 не появилось всё хорошо работало и не было таких вот - не пойми чего (ошибки если и были то синтаксические)
    как оно вышло так НАЧАЛОСЬ :(
     
  11. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
  12. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    я так пониамаю мать ее
    все проблемы в этой мать ее в кодировке сохранения файла
    я работаю с win 1251 а нужен utf-8
    я вроде настроил редактор на юникод но похоже он лажает
    --- Добавлено ---
    на локальном сервере
    если я прописываю
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    а он все руссское все равно отображаеет как Работает
    это же расстудыт ее в качель - не верно же
    (на веб сервере у меня принудиельно в .htaccess прописано 1251)
    я и говорю как вышло вот это php 5 началась полная фигня ... - пришлось прописывать иначе отображалось крокозябры....

    Но на локальном то нет
    тут то что ......

    очень хочется всзть и стукнуть всё это молотком
    если чесно
     
    #12 anadonam, 11 янв 2020
    Последнее редактирование: 11 янв 2020
  13. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    вы таки будете смеяться
    но я не знаю как вылечить эту ошибку!
    я не знаю где у меня лишний пробел отправляется
    кодиоровка - юникод отображается правильно
    но ошибка не исчезает

    даже мать ее файл создавал следил без мать его без BOM я не знаю что это но как в инструкции написано над чтобы было выключено
    все напрасно всё глухо
    - оно мёртво....
    --- Добавлено ---
    крокозябры приняли другой вид
    и всё
     

    Вложения:

    • 00.jpg
      00.jpg
      Размер файла:
      107,3 КБ
      Просмотров:
      3
  14. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    нашел код который хоть как то работает без функции header
    Код (Text):
    1. <html><head>
    2. <title>dano.anonado.ru</title>
    3. </head>
    4. <body>
    5. <?php
    6. header("Content-type: image/jpeg");
    7. $input_text = iconv('windows-1251' , 'utf-8' , 'sdsdss sd s s sd ssd s‚' );
    8. $width = (strlen($input_text) * 20) + 50;
    9. $height = 30;
    10. $textImage = imagecreatetruecolor($width, $height);
    11. $color = imagecolorallocate($textImage, 1, 1, 1);
    12. imagecolortransparent($textImage, $color);
    13. imagestring($textImage, 5, 10, 5, $input_text, 0xCCCCCC);
    14. $background = imagecreatefromjpeg('bg.jpg');
    15. imagecopymerge($background, $textImage, 15, 15, 0, 0, $width, $height, 100);
    16. $output = imagecreatetruecolor($width, $height);
    17. imagecopy($output, $background, 0, 0, 20, 13, $width, $height);
    18. ob_start();
    19. imagepng($output);
    20. printf('<img id="output" src="data:image/png;base64,%s" />', base64_encode(ob_get_clean()));
    21. ?>
    22. </body>
    23. </html>
    нашел совет делать перекодировку - она вообще мертвый груз и не работает.. (здесь она осталась - но не важно...)
    c латиницей что то работает. для русского нужна функция header
    подключаю и всё - абзац. - мертво.
    это вот так
    https://anonado.ru/dano/

    на сегодня всё
    выдохся
    всем спасибо
     

    Вложения:

  15. Valick

    Valick Активный пользователь

    С нами с:
    12 авг 2018
    Сообщения:
    1.911
    Симпатии:
    328
    Достаточно взять книгу по рнр страниц эдак на полторы тыщи и стукнуть себя по башке. Если после этого не появится желание взять и прочитать эту книгу от корки до корки, то бросай это гиблое дело. Программирование это не скачанный из инета код, а образ жизни. Это когда ты закрываешь глаза, а вместо сна пишешь мать его алгоритм, потом скидываешь одеяло, включаешь комп и переносиш мысли "на бумагу".
    Если ты не такой же как и мы ебанутый на всю голову найди себе занятие в жизни поспокойнее. :D
     
  16. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    не надо умничать

    ты же не видел сколько я информации сегодня перелопатил в решении этого вопроса.
    советы везде одни и те же - проверьте у вас гдето выводится лишний символ или lдело в кодировка.......на сей момент я испробовал всё что мог - дальше идей пока нет... я задействовал 3 сервера. 1 локальный 2 в web - с разными параметрами с разными кодировками.... итог везде один. - как только подрубаю фукцию header (а она везде в примерах.) всё . абзац.
    (самое интересное что 1 раз сработало на локальном сервере - но потом погасло.. я ничего не смог понять -что как и почему.)

    По поводу чужого кода. и книги.
    1) глупо покупать книгу. в которой нет ответа на решение нужной проблемы
    2) глупо писать свой код если он не будет работать из за закорючки, технической особенности а не из за алгоритмов.

    я не против флуда хотя от него толку ноль

    причем тут спокойная жизнь..
    мне надо кое что написать для своего сайта! и я это сделаю. вопрос лишь на сколько быстро.
    [кстати зову сотрудничать.....ищу партнеров компаньонов... направление - копаем в сторону создания качественного контента быстрыми способами. ]

    что касается вот этой задачи - она не секретная нисколько.
    вот цель. https://anonado.ru/razvlechenie/viskazivaniya-v-kartinkah
    (там афоризмы и текстом и они же на картинке)
    расчет простой - щас я их делаю руками минут 10 уходит на одну. картинку..
    когда решу вот этот технический вопрос напишу .. будет 3-4 минуты. - экономия 50% времени это много !
    И е@анутость тут не причем.
     
    #16 anadonam, 11 янв 2020
    Последнее редактирование: 11 янв 2020
  17. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    вот тут
    Код (Text):
    1. Опубликовано 14 января, 2018
    2. проблема была в этом, у нас стоял режим nginx+php-fpm, переключили на apache2+php-cgi все заработало
    если в этом дело я тут бессилен исправить этот параметр (нет доступа)
     
  18. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    https://php.ru/forum/threads/pomogite-reshit-oshibku.82849/
    --- Добавлено ---
    Себе по голове, самое то будет!
    Ведь то что ты машине отдаешь, то она и делает. Т.е. это не она виновна, а ты не до понимаешь какой-то процесс.
     
  19. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    спасибо почитал но ... все это я еще вчера пробовал
    всё очень сраранно получается с этим этим

    ----
    Помните, что функцию header() можно вызывать только если клиенту еще не передавались данные. То есть она должна идти первой в выводе, перед ее вызовом не должно быть никаких HTML-тегов, пустых строк и т.п. Довольно часто возникает ошибка, когда при чтении кода файловыми функциями, вроде include или require, в этом коде попадаются пробелы или пустые строки, которые выводятся до вызова header(). Те же проблемы могут возникать и при использовании PHP/HTML в одном файле.
    -----
    все правильно написано с одной стороны.
    но если я ставлю эту функция на выполнение самой первой- ошибка то исчезает но экраг становтся черным и он блочит весь остальной код
    и это тоже логично , ведь понимается что должна быть отображена картинка....


    какой то замкнутый круг.. - и я не один с этим вопросом....
    но почему во всех (ваще во всех) примерах вызов этой функции в любом месте ??????????? - и типа пример должен работать ???????????????.

    // (короче похож не судьба.. и придется искать другие пути реализации задачи..)

    идей как чинить пока не имею пока что занимаюсь другими делами коих тоже тонны...
    (но там вопросов нет)
     
    #19 anadonam, 12 янв 2020
    Последнее редактирование: 12 янв 2020
  20. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    @anadonam,

    php скрипт должен содержать only utf8 no BOM кодировку.

    А теперь опиши логику действий твоего скрипта, земляк.
     
  21. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    всё так и было
    использовался notepad++ специально скачивал ставил... (так советуют по решению проблемы)

    на данный момент логики нет. просто проводил тест работы с gd lib....

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

    (даже был совет на кодировке win1251 для функции специально менять кодировку содержимого в переменной). был якобы рабочий пример. тоже не сработало.

    если предоставите скрипт - я могу легко показать результат его работы здесь. (ссылку поставлю)
     
    #21 anadonam, 12 янв 2020
    Последнее редактирование: 12 янв 2020
  22. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Вот это должно было получится?

    image.php

    PHP:
    1. <?php
    2.  
    3. $image = imagecreatetruecolor(320, 240);
    4.  
    5.     if ($image) {
    6.         $colorBg = imagecolorallocate($image, 155, 255, 255);
    7.         imagefill($image, 0, 0, $colorBg);
    8.         $colorTx = imagecolorallocate($image, 233, 14, 91);
    9.         imagestring($image, 2, 10, 10, "Image :)", $colorTx);
    10.  
    11.         header("Content-type: image/gif");
    12.         imagegif($image);
    13.         imagedestroy($image);
    14.     }
    15. ?>
    page.html
    HTML:
    1. <!DOCTYPE html>
    2.  
    3. <html lang="en">
    4.     <meta charset="UTF-8">
    5.     <title>dano.anonado.ru</title>
    6. </head>
    7.     <img src="image.php" width="1350" height="850">
    8.     <center>
    9.     <br><br><br><br>
    10.         <table>
    11.             <tr><td>This is a placeholder for the subdomain <b>dano.anonado.ru</b></td></tr>
    12.         </table>
    13.     <br><br>
    14.     </center>  
    15. </body>
    16. </html>
     
    anadonam нравится это.
  23. anadonam

    anadonam Новичок

    С нами с:
    10 янв 2020
    Сообщения:
    89
    Симпатии:
    3
    Адрес:
    Воронеж
    10 минут терпения , сейчас внедрим! и отпишусь - покажу.
    --- Добавлено ---
    Ой заработало!!

    СПАсибо тебе добрый человек
    с меня причитается!!!
    ссылка на результат https://anonado.ru/dano/ - но я уберу код через пару тройку дней
    а тем кто решает такую же проблему -подтверждаю -код рабочий!
     

    Вложения:

    • 00.jpg
      00.jpg
      Размер файла:
      6,1 КБ
      Просмотров:
      3
    #23 anadonam, 12 янв 2020
    Последнее редактирование: 12 янв 2020
  24. AlexandrS

    AlexandrS Активный пользователь

    С нами с:
    30 сен 2017
    Сообщения:
    659
    Симпатии:
    103
    Адрес:
    Краснодар
    Под постом есть иконки с пальцем вверх! ;)
    --- Добавлено ---
    Этот код тоже работал, просто нужно было вот тут :
    HTML:
    1. <img src="/pic.php"  width="1350" height="850">
    написать вот так:
    HTML:
    1. <img src="pic.php"  width="1350" height="850">
    либо так
    HTML:
    1. <img src="./pic.php"  width="1350" height="850">
    и соответственно, чтоб файл с PHP кодом был именован вот так "pic.php"
    --- Добавлено ---
    PS: Кроме того, ты в robots.txt прописал запреты на индексирование и тем самым показал директории, например, я, сразу нашел конфиг у тебя он по адресу /core/config.php
    Как бы ты права на файлы пропиши и оно нехорошо когда вот так вот доступно.
     
  25. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.748
    Симпатии:
    1.321
    Адрес:
    Лень
    ОТ / корня сайта