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