0

このスクリプト (キャプチャ コードを生成する) の ImageString に、5 桁の数字のキャプチャ コードと "is the code" というテキスト (スパムボットを混乱させるため) を返すようにしたいと考えています。生成される画像にカスタム テキストを含めるには、このコードをどこで変更すればよいでしょうか?

これについて助けてくれてありがとう。

<?php

session_start();
$md5_hash = md5(rand(0,99999)); 
$security_code = substr($md5_hash, 25, 5); 
$enc = md5($security_code);
$_SESSION['captcha'] = $enc;

$width = 165;
$height = 30; 

$image = ImageCreate($width, $height);  
$white = ImageColorAllocate($image, 255, 255, 255);
$black = ImageColorAllocate($image, 0, 0, 0);
$grey = ImageColorAllocate($image, 200, 200, 200);

ImageFill($image, 0, 0, $white); 
ImageString($image, 10, 7, 7, $security_code, $black); 

header("Content-Type: image/png"); 
ImagePng($image);
ImageDestroy($image);

?>
4

1 に答える 1

0

たぶん変わる

$security_code = substr($md5_hash, 25, 5); 

$security_code = substr($md5_hash, 25, 5); 
$security_code .= " is the code";

これにより、テキストが文字列に追加され、に渡されImageString()ます。それを試してみてください。画像の幅も広げたい場合があります。

1 つの代替方法: カスタム CAPTCHA が弱い場合は、より安全なライブラリを使用して、新しいバージョンがリリースされたときに更新とセキュリティの強化を提供できます。

SecurImage を使用しました -- http://www.phpcaptcha.org/

于 2013-08-03T03:47:49.950 に答える