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 Комментарий оценки: КАРТИНКА ЕСТЬ!!!!!!!!!!!!!!!!!!!!!!!!!!!! В ДИРЕКТОРИИ КАРТИНКА ЕСТЬ! еще раз код:
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(). Кроме того, заголовки у Вас посылаются явно не в том месте - их лучше посылать непосредственно перед выводом изображения, а не через двадцать две процедуры.
--------- Ничто не сближает людей так, как совместное преступление. Или покупка телевизора.