-1

最近、ウェブサイトのサーバーを移動しました。ただし、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);
} 

?>
4

1 に答える 1

1

GD をインストールするには PHP が必要だと思いますが、キャプチャをレンダリングしようとしたときにサーバーで発生するエラーを知らずに判断することは不可能です。ログを確認してください。

于 2012-05-08T17:14:11.963 に答える