cleey
望着那一丝海线,若隐若现。落日下的海霞,数不尽的美,看不完的醉
ThinkPHP验证码
对于ThinkPHP验证码的使用:

分三个步骤,验证码的生成,验证码的呈现,验证码的验证;

1、验证码的呈现,需要前台img标签来放置验证码:

<div class="control-group">
<label class="control-label" for="inputPassword">验证码</label>
<div class="controls">
<input class="code" name="verify" type="text" size="5" />
<span><img id="verifyImg" SRC="__URL__/verify/" onClick="fleshVerify()" border="0" alt="点击刷新验证码" style="cursor:pointer" align="absmiddle"></span>
</div>
</div>

然后需要做一些验证码刷新的js操作;或者什么的

<script language="JavaScript">
$("#verifyImg").click(function(){fleshVerify();});
function fleshVerify(type){
//重载验证码
var timenow = new Date().getTime();
if (type){
$('#verifyImg').attr("src", '__URL__/verify/adv/1/'+timenow);
}else{
$('#verifyImg').attr("src", '__URL__/verify/'+timenow);
}
}
</script>



2、验证码的生成,这里是后台验证码生成情况,前台需要请求这个操作才能生成验证码:

public function verify(){
$type = isset($_GET['type'])?$_GET['type']:'gif';
import("ORG.Util.Image");
Image::buildImageVerify(4,1,$type);
}



3、最后是后台的验证码验证:

private function checkverify(){
$cv = md5(trim($this->_param('verify'))); // 表单提交 需要md5,因为生成的验证码就是这样的
$sv = session('verify'); // 真正的验证码
if($cv != $sv){
$this->error("验证码错误!");exit;
}

}



如果前台验证码图片不能显示,或者报错,请看另一篇文章 验证码呈现,报错
<< 上一篇 PHP设置socket超时 PHP验证码不显示 下一篇 >>
文章标签
随意 | Created At 2014 By William Clinton | 蜀ICP备14002619号-4 |