ThinkPHP - 验证码

今天用到 ThinkPHP 框架的验证码,特来记录一下,以备不时之需。

 

1. 在模板页面需要显示二维码的地方添加 img 标签:

<img src="{:U('Login/verificationCode',array('rand'=>time()))}" onclick="this.src=this.src+'?'"  alt="" />

    说明: src 地址为后台控制器产生验证码的方法,

         rand 参数可避免产出的验证码被缓存,

       onclick 为点击图片刷新验证码。

 

后台控制器代码为:

2. 产生验证码

    public function verificationCode(){

        $config =    array(    
            'fontSize'    =>    30,    // 验证码字体大小    
            'length'      =>    4,     // 验证码位数
            'fontSize'    =>    '20px',     // 验证码字体大小(像素) 默认为25
            'useCurve'    =>    false,     // 是否使用混淆曲线 默认为true
            'imageW'      =>    '0',// 验证码宽度 设置为0为自动计算
            'imageH'      =>    '45px',// 验证码高度 设置为0为自动计算
            'useNoise'    =>    false, // 关闭验证码杂点
        );
        $Verify =     new \Think\Verify($config);
        $Verify->entry();
    }

  详细验证码参数可到 ThinkPHP 手册查询,就不一一说明了。

3. 检测验证码方法

// 检测输入的验证码是否正确,$code为用户输入的验证码字符串
    function check_verify($code){    
        $verify = new \Think\Verify();
        if($verify->check($code)){
            return true;  // 验证码填写正确
        }else{
            return false;  // 验证码填写错误
} }

  最后,只要在提交表单后,后台控制器调用 check_verify 就可以了。(完)

 

posted @ 2017-03-25 00:00  梦缘&江南~  阅读(107)  评论(0)    收藏  举报