ThinkPHP验证码
对于ThinkPHP验证码的使用:
分三个步骤,验证码的生成,验证码的呈现,验证码的验证;
1、验证码的呈现,需要前台img标签来放置验证码:
然后需要做一些验证码刷新的js操作;或者什么的
2、验证码的生成,这里是后台验证码生成情况,前台需要请求这个操作才能生成验证码:
3、最后是后台的验证码验证:
如果前台验证码图片不能显示,或者报错,请看另一篇文章 验证码呈现,报错
分三个步骤,验证码的生成,验证码的呈现,验证码的验证;
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;
}
}
如果前台验证码图片不能显示,或者报错,请看另一篇文章 验证码呈现,报错