关于thinkphp验证码的那些事

首先,如果我们要使用thinkphp的验证码功能,有2种方法:

1.去下载完整版的thinkphp框架

2.通过composer安装对应的验证码类库,在命令行下面切换到你的应用根目录下面,执行:

composer require topthink/think-captcha
(具体参考composer安装手册)

安装完我们可以就可以开心愉快的玩thinkphp;
同样,首先这里我们也需要配置一下验证码的参数:
'captcha'  => [
        // 验证码字符集合
        'codeSet'  => '2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY', 
        // 验证码字体大小(px)
        'fontSize' => 25, 
        // 是否画混淆曲线
        'useCurve' => true, 
         // 验证码图片高度
        'imageH'   => 30,
        // 验证码图片宽度
        'imageW'   => 100, 
        // 验证码位数
        'length'   => 5, 
        // 验证成功后是否重置        
        'reset'    => true
],

配置完成后,我们有2种方法可以选择,
1.可以通过captcha_src()来控制验证码,
<img src="{:captcha_src()}" alt="点击更换" />
这样就可以通过直接传src地址来控制了
if(!captcha_check($captcha)){
判断失败后做什么
}
这里我们也可以研究一下源码
function captcha_src($id = "")
{
return hinkUrl::build('/captcha' . ($id ? "/{$id}" : ''));
}

2.也可以通过captcha_img()来控制验证码,这里我们直接
{:captcha_img()}
这样就可以了,不过这样是通过return一段结构到前端,(不是太好)
我们可以研究一下它的源码
function captcha_img($id = "")
{
return '<img src="' . captcha_src($id) . '" alt="点击更换" />';
}
但是通常我们会有点击图片更换刷新验证码的要求,通过第二种方法就很简单,每次只要在return的结构中改变$id就可以满足我们的效果,
但是这样我们有时候想要改变这些图片就不太好,因为还要返回到php里面来改源码,我们可以尽量做到只是传数据就能改变。
这里我们就可以通过第一种方法来改变验证码。(这里有一个比较坑爹的地方)





 
 
 
原文地址:https://www.cnblogs.com/xiongmaoblog/p/6422301.html