好库网 好库网首页 | 我的好库
好饱的专栏

PHP实现图形验证码案例(1)

发布者:好饱
发布日期:2011/4/28 10:22:50   更新日期:2011/4/28 10:28:58
阅读次数:2970
评分:4.80
介绍:PhpCaptcha图形验证码是网站中必备的基础设施,本文采用了Edword Eliot写的PhpCaptcha验证码生成库。开源的“最土团购”就是采用这个验证码生成库。
正文:

下载源代码

 

图形验证码是网站中必备的基础设施,本文采用了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指定验证码字符的长度。

 

页面表单:

 

<form name="form1" method="post" action="check.php">    
验证码:<input id="verifycode" type="text" name="verifycode" maxLength="6" />
<img id="img-captcha" src="captcha.php?<?php echo microtime(true)?>" />
<input type="submit" value="确认" />
</form>

验证代码:

 

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();启用。

 

具体代码可以查看本文带的源代码。

 

 


评论 [发表评论]
账号 密码 还没帐号呢,现在注册一个?

免责声明:好库网所展示的信息由买卖双方自行提供,其真实性、准确性和合法性由信息发布人负责。好库网不提供任何保证,并不承担任何法律责任。