У меня есть исходный код 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);?>
Вы должны добавить header('Content-Type: image/png');
прежде чем генерировать PNG в PHP, чтобы он отображал PNG (аналогично для JPG).
Кроме того, вы должны проверить, imagepng()
успешно генерирует PNG перед установкой заголовка. Что еще более важно, вы должны проверить, установлена ли библиотека GD или нет.
Кроме того, не имеет смысла, что с помощью .htaccess
чтобы файл HTML содержал коды PHP; Вместо этого используйте расширение PHP.
Других решений пока нет …