在ImageString生成的验证码中包含自定义文本

时间:2013-08-03 03:41:15

标签: php

我想在此脚本中生成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);

?>

1 个答案:

答案 0 :(得分:0)

也许改变

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

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

这会将您的文字附加到字符串上,并传递给ImageString()。尝试一下&amp;看你怎么走您可能还想增加图像宽度。

另一种选择:如果您的自定义CAPTCHA很弱,您可以使用图书馆 - 这可能更安全,并为您提供更新&amp;随着新版本的发布,安全性得到提高。

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