您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
thinkphp5学习笔记-验证码
发布时间:2018-06-14 21:51:58编辑:雪饮阅读()
部署:
将vendor.rar解压到你框架根目录(非public)中以vendor文件夹存放.
然后模板中直接调用验证码方法就可以生成验证码。控制器中对应方法不需要多余处理,直接return模板即可。只是校验验证码需要控制器中另外添加方法。
模板中代码如:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script type="text/javascript">
window.addEventListener("load",function(){
var img=document.getElementsByTagName('img')[0];
img.addEventListener('click',function(){
this.src=this.src+"?a="+Math.random();
},false);
},false);
</script>
</head>
<body>
{:captcha_img()}
<form method="post" action="{:url('chk')}">
<p>输入验证码:<input type="text" name="code"/></p>
<p><input type="submit" value="提交"/></p>
</form>
</body>
</html>
模板代码解析:
{:captcha_img()}:
调用验证码类中的方法生成包含验证码图片的img标签
{:url('chk')}:
表单的action指向控制器的验证方法chk。
控制器中校验验证码方法:
public function chk($code=''){
$captcha=new \think\captcha\Captcha();
if(!$captcha->check($code)){
$this->error("验证码错误");
}
else{
$this->success("验证码正确");
}
}
解析:
$code会接受通过表达提交中将input的name为code的表单元素值提交过来。
控制器中校验验证码方法-助手函数:
public function chk($code=''){
if(!captcha_check($code)){
$this->error("code error");
}
else{
$this->success('code success');
}
}
关键字词:thinkphp5,验证码