thinkphp3.2 验证码生成和刷新验证码

一、实例化生成验证码的类(该方法放到IndexController里面便于访问)

<?php

    /** 
     *  
     * 验证码生成 
     */  
    public function verify_c(){  
        $Verify = new \Think\Verify();  
        $Verify->fontSize = 18;  
        $Verify->length   = 4;  
        $Verify->useNoise = false;  
        $Verify->codeSet = '0123456789';  
        $Verify->imageW = 130;  
        $Verify->imageH = 50;  
        //$Verify->expire = 600;  
        $Verify->entry();  
    }  

?>

二、前台需要生成验证码的图片src属性指向

<div class="form-group">
<label for="password" class="col-sm-2 control-label">验证码</label>
<div class="col-sm-4">
<input type="text" class="form-control" name='verify' id="verify" placeholder="验证码">  
</div>
<span onclick="changeverify()"><img width="30%" height="50" alt="验证码" id='verifyimg' src="__CONTROLLER__/verify_c" title="点击刷新"  style="cursor:pointer"></span>
</div>

三、写完上面的后,页面初始化的验证码就可以出现了,下面要写的就是点击验证码图片后,刷新出新的验证码图片(通过jquery修改图片的src属性来完成,请求的处理函数一样,只是在请求后加一个随机数,区别上一张图片的请求)

function changeverify(){  
        var verifyimg = $("#verifyimg").attr("src");

            $("#verifyimg").attr("src", "__CONTROLLER__/verify_c/"+Math.random());  

    } 

四、校验验证码输入是否正确

a.在common目录下的function.php里加入全局函数

<?php

    /** 
     * 验证码检查 
     */  
    function check_verify($code, $id = ""){  
        $verify = new \Think\Verify();  
        return $verify->check($code, $id);  
    }  


?>

b.在表单提交的controller对应的处理方法里添加检查代码(登录验证)

public function dologin(){
        //var_dump($_POST);
        session_start();
        $userName =$_POST['username'];
        $passWord =$_POST['password'];
        //根据username获取数据库中匹配的信息
        $User = M('userd');//表名
        $userInfo = $User->where('username="%s"',$userName)->find();
       $verify = I('param.verify','');  

       $_SESSION['user']=$userName; 
       if($userName == $userInfo['username'] && md5(md5($passWord).$userInfo['salt']) == $userInfo['userpass']){
         if(!check_verify($verify)){  
           // $this->error("亲,验证码输错了哦!",$this->site_url,9);  
            $this->assign('loginInfo','亲,验证码错了啊啊啊啊');
            $this->tologin();
        } else {
         //   redirect(U('User/Usercenter/index'));
            $this->tobbs();

        }
    }else{
     $this->assign('loginInfo','登录失败,用户名或密码错误');
     $this->tologin();
 }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值