thinkphp5.0.3的验证码相比,thinkphp3,2,3,我觉得好用的多了,因为我下载的是thinkphp5.0.3核心板,为了
以后使用方便,我再次从官网下载了thinkphp5.0.2完整版,之后把think5.0.2下面的真个vendor问价夹拷贝到了
thinkphp5.0.3版本中,当然也可以用什么下载什么,我为了省事就直接拷贝了
第一步:使用验证码,
<img id="code_img" align="top" src="{:captcha_src()}" title="点击切换验证码"> //这样就可以了
//jquery 点击改变验证码写法
$('#code_img').click(function() {
var imgUrl = "{:captcha_src()}" //这种写法,我发现除了谷歌浏览都不好使,请看下面补充说明
$(this).attr('src', imgUrl);
});
第二步:配置验证码,
config.php文件数组中加入验证码配置
//分页配置
'paginate' => [
'type' => 'bootstrap',
'var_page' => 'page',
'list_rows' => 15,
],
//验证码配置
'captcha' => [
// 验证码字符集合
'codeSet' => '123456789abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY',
// 验证码字体大小(px)
'fontSize' => 24,
// 是否画混淆曲线
'useCurve' => true,
// 验证码图片高度
//'imageH' => 30,
// 验证码图片宽度
//'imageW' => 100,
// 验证码位数
'length' => 4,
// 验证成功后是否重置
'reset' => true
],
第三本:检验验证码
if (!captcha_check($captcha)) $this->error('验证码错误!'); //控制器检验方法
但是请注意:我遇到问题了!
不知道大家有没有这样的问题;我这样写出来的验证码,不切换验证码的时候是可以用的,但是一旦切换验证码
以后就一直提示我验证码错误;因为时间问题,我没有去找具体的原因,这里我给出一个解决的办法,如下
第一步:使用验证码,
<img id="code_img" align="top" src="{:captcha_src($id = 'code1')}" title="点击切换验证码"> //这样就可以了
//jquery 点击改变验证码写法
$('#code_img').click(function() {
var imgUrl = "{:captcha_src($id = 'code1')}" //code1为可变的,用在哪里就起醒目的名字
$(this).attr('src', imgUrl);
});
第二步:同上;
第三步:检验验证码
$captcha = input('post.code') ? input('post.code','','trim') : $this->error('请输入验证码!');
if (!captcha_check($captcha, 'code1')) $this->error('验证码错误!');
这样就完美的使用thinkphp5的验证码类了,如何切换能能正确验证了
注意:点击切换验证码补充写法
$('#code_img').click(function() {
var imgUrl = "{:captcha_src($id = 'code1')}"
imgUrl = imgUrl.substr(imgUrl, imgUrl.indexOf('.html', imgUrl)) + '/' +Math.random()+'.html';
$(this).attr('src', imgUrl);
});