0

Captcha コードで見つけたスクリプトを実装するのに苦労しました。PHPにあまり詳しくないので、どんな助けでも素晴らしいでしょう。

問題:ライブ サーバーではキャプチャ イメージが表示されませんが、ローカル サーバーでは表示されます。

検証ファイル:

<?php
header('Content-type: image/jpeg');

$width  = 90;
$height = 30;
$dir = getcwd().'/fonts/';

$black = imagecolorallocate($my_image, 0, 0, 0);
$angle = rand(0,3);

imagefilledrectangle($image,0,0,399,99,$white);


$my_image = imagecreatetruecolor($width, $height);

imagefill($my_image, 0, 0, 0xFFFFFF);

// adds noise
for ($c = 0; $c < 50; $c++){
    $x = rand(0,$width-1);
    $y = rand(0,$height-1);
    imagesetpixel($my_image, $x, $y, 0x000000);
    }

$x = rand(10,12);
$y = rand(10,15);

$rand_string = rand(1000,9999);
//imagestring($my_image, $font, $x, $y, $rand_string, 0x000000);
imagettftext ($my_image, 22, $angle,10, 27, $black, $dir."arial.ttf", $rand_string);
setcookie('tntcon',(md5($rand_string).'a4xn'));

imagejpeg($my_image);
imagedestroy($my_image);
?>

お問い合わせフォーム:

<img src="verification.php?<?php echo '<span>'.rand(0,9999).'</span>';?>" alt="Anti spam verification" class="verify" />    
  • フォントは、「fonts」という名前のルート フォルダーにあります。

皆様、ご応募ありがとうございました。

4

1 に答える 1

1

display_errors「ライブ」サーバーがオフになっていると思います。つまり、何が問題なのかについてのエラーは表示されません。PHP エラー ログを確認する必要があります。私の推測では、GD はインストールされていません。

/var/log/apache2Apache を使用している場合は含まれているはずです。そうでない場合は、PHP 情報ファイルを作成して PHP に問い合わせて、セットアップが何であるかを確認できます。

<?php phpinfo();
于 2011-12-29T16:08:21.350 に答える