0

我想让这个脚本中的 ImageString(生成验证码)返回 5 位数字验证码加上文本“是代码”(以帮助混淆垃圾邮件机器人)。我将在哪里修改此代码以在生成的图像中包含我的自定义文本?

感谢您对此的任何帮助。

<?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(). 试试看,看看你怎么样。您可能还想增加图像宽度。

一种选择:如果您的自定义 CAPTCHA 很弱,您可以使用一个库 - 这可能更安全,并在新版本发布时为您提供更新和更高的安全性。

我使用了 SecurImage—— http: //www.phpcaptcha.org/

于 2013-08-03T03:47:49.950 回答