Настройка для отображения php как изображения (.png или .jpg)

У меня есть исходный код PHP для рисования изображения (динамическое изображение для рисования капчи).

Он отображал png файл, динамически генерируемый.
Но он не отображается после того, как я переместил php на бесплатный веб-сервер, который поддерживает PHP 5.x,
вместо старого сервера PHP 4.x моей компании.

Я изменился .htaccess файл, чтобы сделать файл «html» раньше содержал код «php».

Нужно ли менять или добавлять настройки в .htaccess отобразить ‘php’ в виде файла изображения на новом сервере?

Это не похоже на работу с одной строкой:

header('Content-Type: image/png');

в файле php.

Я добавил исходный код php файла ниже для вашей справки:

<?php

session_start();
// Create the image
$im = imagecreatetruecolor(150, 50);

// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$gray = imagecolorallocate($im, 198, 198, 198);
//$black = imagecolorallocate($im, 0, 0, 0);
$textcol = imagecolorallocate($im, 38, 38, 38);

imagefilledrectangle($im, 0, 0, 399, 129, $gray);

// The text to draw
$text = empty($_SESSION['security_number']) ? 'error' : $_SESSION['security_number'];

$font = 'Georgia.ttf';

// Add some shadow to the text
//imagettftext($im, 20, 0, 11, 21, $grey, $font, $text);

// Add the text
imagettftext($im, 30, 0, 10, 35, $textcol, $font, $text);

imagepng($im);
imagedestroy($im);?>

0

Решение

Вы должны добавить header('Content-Type: image/png'); прежде чем генерировать PNG в PHP, чтобы он отображал PNG (аналогично для JPG).

Кроме того, вы должны проверить, imagepng() успешно генерирует PNG перед установкой заголовка. Что еще более важно, вы должны проверить, установлена ​​ли библиотека GD или нет.

Кроме того, не имеет смысла, что с помощью .htaccess чтобы файл HTML содержал коды PHP; Вместо этого используйте расширение PHP.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]