![]() |
Вместо картинки выодит ‰PNG
Проблема такая: есть 2 страницы.
2.php: ////////////////////////////////////////// <?php header('Content-type: image/png'); $img = imageCreate(100, 100); $black = imageColorAllocate($img, 0, 0, 0); $white = imageColorAllocate($img, 255, 255, 255); $orange = imageColorAllocate($img, 255, 128, 64); $lightorange = imageColorAllocate($img, 255, 220, 164); imageFilledRectangle($img, 0, 0, 100, 100, $white); imageRectangle($img, 0, 0, 99, 99, $black); imageRectangle($img, 5, 5, 94, 94, $black); $points = Array(12,10, 20,15, 15,20); $nump = (int) count($points)/2; imagePolygon($img, $points, $nump, $orange); imageLine($img, 17, 18, 27, 33, $orange); imageLine($img, 18, 18, 28, 33, $lightorange); imageLine($img, 19, 18, 29, 33, $orange); imageRectangle($img, 15, 33, 80, 75, $orange); imageFill($img, 14, 14, $lightorange); imageFill($img, 20, 40, $lightorange); imageString ($img, 2, 20, 40, "I'm a PHP", $black); imageString ($img, 2, 30, 55, "image", $black); imagePNG($img); ?> ////////////////////////////////////////// add.html: ////////////////////////////////////////// <img src="2.php"> ////////////////////////////////////////// Под Denwer все работает: можно грузить и 2.php, и add.html. Но когда я добавляю этот код на страницы готового сайта(он - на typo3), то php-файл показывает вместо картинки: ‰PNG IHDRdd Œ}Ç PLTEÿÿÿÿ€@ÿܤDCígIDATxœíÖ;  ... Библиотека GD подключена (судя по настройкам - см.phpinfo()). Никаких ошибок не выводит,просто вместо картинки выводится этот странный текст.Как я понимаю, это происходт из-за вывода какой-то информации до header в скрипте. О typo3 я знаю ОЧЕНЬ мало, а разбираться некогда - надо этот скрипт СРОЧНО прикрутить к готовому сайту. ОГРОМНАЯ просьба помочь!!!! |
А каким образом вы добавляете код и какой именно "этот"?
Если вставить в контент код <img src="">, то всё должно работать. Если же вы пытаетесь прямо в страницу вставить php-код, то логично, что у вас ничего не получается. |
На сайте есть 2 страницы.
Загрузка происходит со страницы №1. Там есть HTML контент, в котором есть только одна строка: <img src="2.php"> Страница №2: называется "2.php" и содержит PHP контент, в котором находится следующий код: <?php header('Content-type: image/png'); function RandCharImage($code) { $font = "font.ttf"; $img = ImageCreate (320, 50); $color = array(); $color[] = ImageColorAllocate ($img, 0, 0, 0); $color[] = ImageColorAllocate ($img, 0, 0, 127); $color[] = ImageColorAllocate ($img, 127, 0, 0); $color[] = ImageColorAllocate ($img, 0, 127, 0); $color[] = ImageColorAllocate ($img, 127, 127, 0); $color[] = ImageColorAllocate ($img, 127, 0, 127); $color[] = ImageColorAllocate ($img, 0, 127, 127); $color[] = ImageColorAllocate ($img, 127, 127, 127); $color[] = ImageColorAllocate ($img, 0, 0, 255); $color[] = ImageColorAllocate ($img, 255, 0, 0); $color[] = ImageColorAllocate ($img, 0, 255, 0); $color[] = ImageColorAllocate ($img, 255, 255, 0); $color[] = ImageColorAllocate ($img, 255, 0, 255); $color[] = ImageColorAllocate ($img, 0, 255, 255); $color[] = ImageColorAllocate ($img, 255, 255, 255); $sx = ImageSX ($img) - 1; $sy = ImageSY ($img) - 1; $sc = count ($color) - 1; // Background noise: for ($i = 0; $i < 1024; $i++) { $x = mt_rand (0, $sx); $y = mt_rand (0, $sy); $c = $color[mt_rand(1,$sc)]; ImageSetPixel ($img, $x, $y, $c); } // Output of a code: $xpos = mt_rand (4, 16); $height = $sy - mt_rand (0, $sy / 4); for ($i = 0; $i < strlen($code); $i++) { $angle = mt_rand (0, 45) - 22; $size = mt_rand (0, 10) + 30; $ypos = $sy - mt_rand (4, $sy - $height); $c = $color[mt_rand(9,$sc)]; $rect = ImageTTFtext ($img, $size, $angle, $xpos, $ypos, $c, $font, $code[$i]); $width = $rect[2] - $rect[0]; $height = $rect[1] - $rect[7]; $xpos += $width + mt_rand (0, 32) - 8; } //Forward noise: for ($i = 0; $i < 256; $i++) { $x = mt_rand (0, $sx); $y = mt_rand (0, $sy); $c = $color[mt_rand(1,$sc)]; ImageSetPixel ($img, $x, $y, $c); } for ($i = 0; $i < mt_rand (2, 8); $i++) { $x1 = mt_rand (0, $sx); $y1 = mt_rand (0, $sy); $x2 = mt_rand (0, $sx); $y2 = mt_rand (0, $sy); $c = $color[mt_rand(0,$sc)]; ImageLine ($img, $x1, $y1, $x2, $y2, $c); } ImagePng ($img); ImageDestroy ($img); } session_start(); RandCharImage($_SESSION['code_chars']); ?> Если грузится со страницы №1-то картинка не выводится, если со страницы №2 - выводится следующее: ‰PNG IHDR@2УтжХPLTEяяяяяяяяяяяя?_Яїџ ___џџџ???ЯЯЯїїї??яЯЯ??џППџяяџџ?Яяя?яяїяџ_?її? ЇяЯП/??џ__я??яџяџя?џџя_ЇЇїїїЯя_яЯПї?ї??џ_яїЯЯ џџ__??їїЯпїяџџ_FкЊE ‰IDATxњ[‡Ілё ҐдўjYІ%[v’MvУ&uR&“кЫ6ЙяR°,ІоЛГмѕ«B‘АБRІнF(1E)¬d""?ь oNZСоГЫRr<(ХaLў} QWєxCqH\ћЭх{,–ЧЅЗ¶Й†‹Іе§>DFЫЭB)\©д‡t %рчҐµХХxЪG®‹«йf©JњDNцOоу–№хZtјиП?ћOЕі-¦и.tЖ.BрЖк УW9µ,ЕZI[јk–€’Ы±вRGЬjЊ*ь€‹bH|ЊRэїҐСТdП7> и т.д. |
2.php - это страница в TYPO или просто файл лежащий на сайте?
|
БОЛЬШОЕ спасибо всем за помощь, но ошибка уже найдена.
Решение было в том,чтобы перенетси файл 2.php в другую папку - так и не стало понятно, почему ссылка на файл 2.php в старой папке не работала-путь был правильный. После этого картинка стала нормально показываться. |
Часовой пояс GMT +4, время: 04:14. |
Работает на vBulletin® версия 3.8.1.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot