Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


РАССЫЛКИ ПОРТАЛА RUSFAQ.RU

/ КОМПЬЮТЕРЫ И ПО / Языки программирования / PHP

Выпуск № 688
от 16.06.2007, 20:05

Администратор:Калашников О.А.
В рассылке:Подписчиков: 429, Экспертов: 61
В номере:Вопросов: 1, Ответов: 4


Вопрос № 90932: ПРоблемма : header("Content-type: image/png"); $img = imagecreatefrompng("image.png"); imagepng($img); imagedestroy($img); выходит: Warning: Cannot modify header information - headers already...

Вопрос № 90.932
ПРоблемма :

header("Content-type: image/png");
$img = imagecreatefrompng("image.png");
imagepng($img);
imagedestroy($img);

выходит:

Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\image.php:2) in z:\home\localhost\www\image.php on line 3

Warning: imagecreatefrompng(image.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in z:\home\localhost\www\image.php on line 4

Warning: imagepng(): supplied argument is not a valid Image resource in z:\home\localhost\www\image.php on line 5

Warning: imagedestroy(): supplied argument is not a valid Image resource in z:\home\localhost\www\image.php on line 6
И после всего этого у меня все нормально с библиотекой?!
Отправлен: 11.06.2007, 12:57
Вопрос задал: DarkHacker (статус: Посетитель)
Всего ответов: 4
Мини-форум вопроса >>> (сообщений: 11)

Отвечает: Селев Валерий
, DarkHacker!

1. Проблема с "Cannot modify header information - headers already sent by" решается размещением строки header("Content-type: image/png"); до начала вывода кода пхп-скриптом (разместите строку в начале файла и перед ней не должно быть пробелов и/или переводов строки).

2. Warning: imagecreatefrompng(image.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in z:\home\localhost\www\image.php on line 4

Очевидно в директории, в которой исполняется скрипт, отсутствует файл image.png.

3. Warning: imagepng(): supplied argument is not a valid Image resource in z:\home\localhost\www\image.php on line 5

Следствие из (2).

4. Warning: imagedestroy(): supplied argument is not a valid Image resource in z:\home\localhost\www\image.php on line 6

Следствие из (2).
А с библиотекой у Вас всё в порядке.
Ответ отправил: Селев Валерий (статус: 5-ый класс)
Ответ отправлен: 11.06.2007, 13:10
Оценка за ответ: 3
Комментарий оценки:
КАРТИНКА ЕСТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!!
В ДИРЕКТОРИИ КАРТИНКА ЕСТЬ! еще раз код:

image.php:








header("Content-type: image/png");
$img = imagecreatefrompng("image.png");
imagepng($img);
imagedestroy($img);

?>





index.html :













И в image.php выходит :

Warning: Cannot modify header information - headers already sent by (output started at z:homelocalhostwwwimage.php:9) in z:homelocalhostwwwimage.php on line 11

Fatal error: imagecreatefrompng() [function.imagecreatefrompng]: gd-p ng: fatal libpng error: IDAT: CRC error in z:homelocalhostwwwimage.php on line 12

НУ ИИИИИИИИИ!!!!!!!!!?

Отвечает: PVS
Здравствуйте, DarkHacker!
1)imagecreatefrompng("image.png") не находит файла image.png . Проверьте из какого каталога запускается Ваш скрипт (если он включается оператором include, include_once, require или require_once из другого каталога, то chdir автоматически НЕ ПРОИСХОДИТ).
2)автоматически созданые заголовки отсылаются раньше чем выполнение скрипта доходит до функции header() - включите буферизацию вывода в php.ini или функциями.
3)нормально ли работает сама библиотека gd можно будет сказать только когда Вы устраните не связяные с ней ошибки
Ответ отправил: PVS (статус: Специалист)
Ответ отправлен: 11.06.2007, 13:21

Отвечает: Sea
Здравствуйте, DarkHacker!
Это хорошо, что на этот раз вы хоть часть кода продемонстрировали:)
И так по порядку:
1)Warning: Cannot modify header information - headers already sent by (output started at z:\home\localhost\www\image.php:2) in z:\home\localhost\www\image.php on line 3

Первую ошибку исправить помогло бы следующее:
добавьте перед header("Content-type: image/png");

var_dump(headers_list());
exit();

Это покажет вам какие заголовки были отправлены.
Без этой информации ничего конкретно сказать не могу.

2)Warning: imagecreatefrompng(image.png) [function.imagecreatefrompng]: failed to open stream: No such file or directory in z:\home\localhost\www\image.php on line 4

Вам всего лишь говориться, что невозможно найти файл image.php
проверьте его наличие или путь к нему - именно сдесь ошибка.

3)Warning: imagepng(): supplied argument is not a valid Image resource in z:\home\localhost\www\image.php on line 5

Warning: imagedestroy(): supplied argument is not a valid Image resource in z:\home\localhost\www\image.php on line 6

Ну и две последнии ошибки появляются лишь в следствии 2-ой, т.к. ресурс $img не был создан, то и imagepng($img) и imagedestroy($img) будут естественно вызывать ошибки.

Ну а с библиотекой у вас все впорядке. Что бы проверить, создайте и выполните такой файл:
============test.php=========
<?php
header("Content-type: image/png");
$img = imagecreate(200,200);
$black = imageColorAllocate($img, 0, 0, 0);
$white = imageColorAllocate($img, 255, 255, 255);
imageFill($img, 1, 1, $white);
imagestring($img, 0, 20, 60, "Test Test Test Test", $black);
imagepng($img);
imagedestroy($img);
?>
Ответ отправил: Sea (статус: 3-ий класс)
Ответ отправлен: 12.06.2007, 11:34

Отвечает: Бородин Александр Олегович
Здравствуйте, DarkHacker!
Если header ругается, значит, где-то вывелась информацияв браузер до посыла заголовков. Читайте то, что говорит PHP, иногда он дело говорит :-) Чтобы этого не происходило, можно перехватывать выходной поток функцией ob_start(), а потом его вываливать в браузер функцией flush(). Кроме того, заголовки у Вас посылаются явно не в том месте - их лучше посылать непосредственно перед выводом изображения, а не через двадцать две процедуры.
---------
Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.
Ответ отправил: Бородин Александр Олегович (статус: 3-ий класс)
Ответ отправлен: 13.06.2007, 19:26


Отправить вопрос экспертам этой рассылки

Приложение (если необходимо):

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

Обратите внимание!
Вопрос будет отправлен всем экспертам данной рассылки!

Для того, чтобы отправить вопрос выбранным экспертам этой рассылки или
экспертам другой рассылки портала RusFAQ.ru, зайдите непосредственно на RusFAQ.ru.


Форма НЕ работает в почтовых программах The BAT! и MS Outlook (кроме версии 2003+)!
Чтобы отправить вопрос, откройте это письмо в браузере или зайдите на сайт RusFAQ.ru.


© 2001-2007, Портал RusFAQ.ru, Россия, Москва.
Авторское право: ООО "Мастер-Эксперт Про"
Email: support@rusfaq.ru, тел.: +7 (926) 535-23-31
Хостинг: "Московский хостер"
Поддержка: "Московский дизайнер"
Авторские права | Реклама на портале
Версия системы: 4.52 от 02.05.2007
Яндекс Rambler's Top100
RusFAQ.ru | MosHoster.ru | MosDesigner.ru | RusIRC.ru
Kalashnikoff.ru | RadioLeader.ru | RusFUCK.ru

В избранное