LINUX.ORG.RU

PHP Рисование примитивов

 


0

1

Парни, проблема такая: купил книгу «Самоучитель PHP 5, Денис Колисниченко», освоил все содержание книжки, кроме рисования примитивов, не могу понять в чем ошибка, пробовал и от себя и точно по книжке (копипаст), результат один - не работает. Пишу следующее:

<?
header ("Content-type: image/png");
$image = imagecreatetruecolor(320, 240);
$color = imagecolorallocate($image, 255, 255, 255);

//прямоугольник
imagerectangle($image,80,60,240,180,$color);

imagepng($image);
imagedestroy($image);
?>
Ошибка такая:
ifnamenull@ifnamenull:~$ cd server/site1
ifnamenull@ifnamenull:~/server/site1$ php test.php
PHP Fatal error:  Call to undefined function imagecreatetruecolor() in /home/ifnamenull/server/site1/test.php on line 3
ifnamenull@ifnamenull:~/server/site1$
Как только не пробовал нарисовать примитив, весь интернет перебрал (примеры) - не работает, я так понимаю чего-то не хватает, как исправить?



Последнее исправление: cetjs2 (всего исправлений: 1)

Ответ на: комментарий от anonymous

apt-get install php5-gd

Установил, теперь в консоле: http://pastebin.com/YPn7YLuD

А в браузере:

Ошибка сервера
На веб-сайте произошла ошибка при получении http://site1/test.php. Веб-сайт может быть закрыт на обслуживание или настроен неправильно.

ifnamenull
() автор топика
Ответ на: комментарий от ifnamenull

Ну раз в консоли всё ок, значит что-то с настройками веб-сервера

xorik ★★★★★
()

проблема такая: купил книгу «Самоучитель PHP 5, Денис Колисниченко»

Эта вся проблема.

Artificial_Thought ★★★★
()
Ответ на: комментарий от spiritkhl

Это ж изображение видимо и выплюнулось.

ТС, смотри лог сервера.

Kalashnikov ★★★
()

Проблема в том, что ты используешь препроцессор HTML для рисования графики.

anonymous
()

Call to undefined function imagecreatetruecolor()

PHP у тебя как-то глючно собран, видимо. В phpinfo указано, что GD есть, а по факту — нет.

Английским по экрану же пишет, что не знает такой функции.

KRoN73 ★★★★★
()
Ответ на: комментарий от anonymous

То, что ты нищеброд, не делает PHP лучше.

Но и хуже тоже. Вы фанатик питона? Опишите поконкретней, чем php хуже, только прошу - без детских выкриков «в интернете написано, дедушка говорил».

ifnamenull
() автор топика
Ответ на: комментарий от ifnamenull

ошибка пропала, но появилась другая

По ссылке вижу только: «PHP Fatal error: Call to undefined function imagecreatetruecolor()»

...

Понял, это игнор анонимусов виноват.

По второй ссылке — да, нормальный PNG.

Если браузер не показывает как картинку, нужно по wget -S посмотреть content-type в header'е.

KRoN73 ★★★★★
()
Ответ на: комментарий от ifnamenull

Amazon. Если твой инстанс никто дергать не будет, то два бакса и выйдет. Будет и пайтон.

Там, кстати, есть и халява для $2 сайтиков.

xpahos ★★★★★
()
Ответ на: комментарий от ifnamenull

Уточни: ты спрашиваешь чем препроцессор гипертекста хуже языков программирования?

anonymous
()
Ответ на: комментарий от PolarFox

Мне нужен именно php, с питоном как нибудь в другой раз. И что это за мода, столкнувшись с ошибкой, предлагать как вариант решения другой язык?

ifnamenull
() автор топика
Ответ на: комментарий от KRoN73

Если браузер не показывает как картинку, нужно по wget -S посмотреть content-type в header'е.

ifnamenull@ifnamenull:~/server/site1$ wget -S site1/test.php
--2012-07-14 15:56:56--  http://site1/test.php
Преобразование адреса site1 (site1)... 127.0.1.2
Подключение к site1 (site1)|127.0.1.2|:80... соединились.
Запрос HTTP послан, ожидание ответа... 
  HTTP/1.0 500 Internal Server Error
  Date: Sat, 14 Jul 2012 09:56:56 GMT
  Server: Apache/2.2.22 (Ubuntu)
  X-Powered-By: PHP/5.3.10-1ubuntu3.2
  Content-Length: 0
  Connection: close
  Content-Type: image/png
2012-07-14 15:56:56 ОШИБКА 500: Internal Server Error.

ifnamenull@ifnamenull:~/server/site1$
ifnamenull
() автор топика
Ответ на: комментарий от ifnamenull

И что это за мода, столкнувшись с ошибкой, предлагать как вариант решения другой язык?

и что за мода, зарегавшись в 2012 году, предлагать как вариант другую моду? Может еще вопросом на вопрос не отвечать?

xpahos ★★★★★
()
Ответ на: комментарий от ifnamenull

И что это за мода, столкнувшись с ошибкой, предлагать как вариант решения другой язык?

Просто на лоре советуют то что нужно, а не то, о чем спрашивает ТС.

anonymous
()
Ответ на: комментарий от ifnamenull

По делу есть что сказать?

у тебя волчанка Internal Server Error. Смотри логи или поставть пистон и пиши на нем.

xpahos ★★★★★
()
Ответ на: комментарий от anonymous

- Девушка, мне пожалуйста кишиневского, две булки.
- Зачем вам кишиневский, вот полчаса назад французских булочек завезли, горяченькие, берите.
- Девушка, мать вашу, мне борщ с французскими булками есть?

ifnamenull
() автор топика
Ответ на: комментарий от ifnamenull

Тебе по делу сказали - Internal Server Error сервер криво поставлен, рисует твой скрипт белую рамку в черном прямоугольнике

anonymous
()
Ответ на: комментарий от ifnamenull

Забудь всё что я говорил про питон, ты для него слишком тупой.

Нет там ничего аномального

PHP Fatal error: Call to undefined function imagecreatetruecolor() in /home/ifnamenull/server/site1/test.php on line 3

anonymous
()
Ответ на: комментарий от ifnamenull

Думаешь, вся эта простынка кому-нибудь нужна? Логи показывай только момента выполнения кода.

gruy ★★★★★
()
Ответ на: комментарий от anonymous

Это ты туповат, нашел ошибку в концах когда GD была не установлена. К твоему сведению, логи читаются от начала, а не с конца.

ifnamenull
() автор топика
Ответ на: комментарий от ifnamenull

К твоему сведению, логи читаются от начала, а не с конца.

Начало лога: [Wed Jul 11 21:33:36 2012], конец: [Sat Jul 14 16:00:12 2012]. Вот мы и выяснили что ты недоумок.

anonymous
()
Ответ на: комментарий от ifnamenull

Ты непробиваем же. Тебе пол-треда подсказывают.

anonymous
()
Ответ на: комментарий от ifnamenull

Internal Server Error - перевожу на русский - «я сервер, я нае..нулся, сам не знаю почему»

anonymous
()
Ответ на: комментарий от ifnamenull

1. На время такой отладки закомментировать header() и ждать, пока в вывод PNG повалится.

2. Попробовать закомментировать всё остальное и начать раскомментировать понемногу, глядя, на какой строчке отвалится.

3. Рекомендую отказаться от использования короткого префикса <? и использовтаь полный, <?php — короткие префиксы по дефолту уже довольно давно не поддерживаются и х.з., не отменят ли их через пару версий совсем.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Зря с anonymous-ами не разговариваешь, anonymous сегодня добрый и дело подсказывает. Дело не в php, скрипт на ура отрабатывает.

ilovewindows ★★★★★
()
Ответ на: комментарий от ilovewindows

Зря с anonymous-ами не разговариваешь

Посмотрел. Понял, что как раз не зря :D

Дело не в php, скрипт на ура отрабатывает.

Дело не в самом PHP, но и не в голом сервере. header() из PHP корректный уходит. Что-то рушится уже в процессе работы скрипта.

KRoN73 ★★★★★
()
Ответ на: комментарий от Kalashnikov

Нормальные логи сервера ТС так и не привёл.

Скажи как это сделать, с удовольствием сделаю. Яж в этом мало что понимаю, только книгу прочел можно сказать, а вы (не конкретно, обобщение) тут со мной как с бородатым админом :)

Вот это равносильно:
- Девушка, что бы накачать шину, нужно колпачке соска отвинтить.
- А вы я смотрю хам тот еще...

ifnamenull
() автор топика
Ответ на: комментарий от ifnamenull

Прекрати эти анекдоты для начала. Открой лог сервера (tail -f /где/он/там/error.log), запусти скрипт в браузере и смотри что аномального там появляется.

Kalashnikov ★★★
()
Ответ на: комментарий от KRoN73

Что-то рушится уже в процессе работы скрипта.

Комментил все строки кроме header («Content-type: image/png»); - все нормально. При попытках раскомментить любую другую из строк, вылет ошибки 500.

ifnamenull
() автор топика
Ответ на: комментарий от Kalashnikov

В консоль же нормально пнг выводится

А Content-Type: image/png в выводе говорит о том, что header() в PHP отрабатывается.

Нормальные логи сервера ТС так и не привёл.

Там не будет ошибки, если это, скажем, PHP сегфолтится или что-то в таком духе. Только 500-я ошибка без подробностей и будет. А если через фронтенд отдавать, то в логах фронтенда будет что-то типа «сервер внезапно закрыл соединение». Я на такие грабли пару раз в бинарных дистрибутивах наступал.

KRoN73 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.