图形验证码是网站中必备的基础设施,本文采用了Edword Eliot写的PhpCaptcha验证码生成库。开源的“最土团购”就是采用这个验证码生成库,该库主要包含这么几个文件:
Captcha.inc.php 验证码生成库
Vera.ttf VeraBd.ttf VeraBI.ttf VeraIt.ttf 这几个文件是用于生成验证码文字的字库。
生成代码:
function CaptchaCreate($size)
{
$aFonts = array('Captcha/VeraBd.ttf', 'Captcha/VeraIt.ttf', 'Captcha/Vera.ttf');
$v = new PhpCaptcha($aFonts,100,50);
$v->UseColour(true);
$v->SetNumChars($size);
$v->Create();
}
ob_get_clean();
CaptchaCreate(4);
PhpCaptcha有三个参数,分别是字库文件,生成图形的宽度,高度。
SetNumChars指定验证码字符的长度。
页面表单:
验证码:
验证代码:
function verify_captcha()
{
$v = strval($_REQUEST['verifycode']);
if(!$v || !PhpCaptcha::Validate($v))
return false;// 验证码不匹配,请重新输入
else
return true;
}
if(verify_captcha())
$message = '验证码正确';
else
$message = '验证码不匹配,请重新输入'
注意事项:
在Captcha.inc.php里有一行 session_start(); 如果在你的主代码中已经调用了session_start();,可以将Captcha.inc.php中的session_start();注释掉,否则必须将session_start();启用。
具体代码可以查看本文带的源代码。