关于ThinkPHP的验证码验证总是报错的解决办法

浏览:3284 发布日期:2016/06/18 分类:技术分享 关键字: ThinkPHP,验证码
验证码生成后,但是验证总是不对.
看了大家的说法,有的说将验证的方法放在Common/function.php中, 然后在控制器中调用这个方法就可以解决了.
但是实际上并不可以.
真正的问题是手册上的例子是错的.
手册上的代码是.// 检测输入的验证码是否正确,$code为用户输入的验证码字符串
function check_verify($code, $id = ''){
    $verify = new \Think\Verify();
    return $verify->check($code, $id);
}
上面有id ,问题就在这里,如果你只生成一个验证码,就不需要加上id

我的代码如下:
生成验证码:    /**
     * 生成验证码
     * @return [type] [description]
     */
    public function verify()
    {

        $config =    array(
            'fontSize'    =>    30,    // 验证码字体大小
            'length'      =>    4,     // 验证码位数
            'useNoise'    =>    false, // 关闭验证码杂点

        );
        $Verify =     new \Think\Verify($config);
        $Verify->entry();

    }
验证码检验方法:
这个方法放在function.php中也可以.我这里是放在控制器中了.
注意,我这里是没有$id 这个参数的protected function check_code($code){
        $verify = new \Think\Verify();
        return $verify->check($code);
    }
最后,调用检测.    public function login()
    {
        //接收数据
        $cid = I('CorporateId');
        $userName = I('LoginName');
        $password = I('Password');
        $code = I('verify');

        //检验验证码
        if(!$this->check_code($code))
        {
            $this->returnMsg(1,'captcha is wrong');
        }
最佳答案
评论( 相关
后面还有条评论,点击查看>>