最近、ウェブサイトのサーバーを移動しました。ただし、captcha 機能 (captcha.php から取り込まれたもの) は機能していません。許可を確認したところ、すべて問題ないように見えますが、他に何が問題になっている可能性がありますか? サイト
キャプチャ フォームは下の方にあります。シンプルなものが足りない気がします!
Captcha.php:
<?php
//Start the session so we can store what the security code actually is
session_start();
//Send a generated image to the browser
create_image();
exit();
function create_image()
{
// Set the content-type
header("Content-type: image/jpg");
// Create the image
$im = imagecreatetruecolor(100, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = $_SESSION["captcha"];
// Replace path by your own font path
$font = 'caviardreams.ttf';
// Add some shadow to the text
imagettftext($im, 15, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 15, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
}
?>
そして、ここに修正があります ($font = realpath($font); を追加):
<?php
//Start the session so we can store what the security code actually is
session_start();
//Send a generated image to the browser
create_image();
exit();
function create_image()
{
// Set the content-type
header("Content-type: image/jpg");
// Create the image
$im = imagecreatetruecolor(100, 30);
// Create some colors
$white = imagecolorallocate($im, 255, 255, 255);
$grey = imagecolorallocate($im, 128, 128, 128);
$black = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $white);
// The text to draw
$text = $_SESSION["captcha"];
// Replace path by your own font path
$font = 'caviardreams.ttf';
$font = realpath($font);
// Add some shadow to the text
imagettftext($im, 15, 0, 11, 21, $grey, $font, $text);
// Add the text
imagettftext($im, 15, 0, 10, 20, $black, $font, $text);
// Using imagepng() results in clearer text compared with imagejpeg()
imagepng($im);
imagedestroy($im);
}
?>