首页 > Web开发 > 详细

thinkphp5验证码处理

时间:2018-02-27 15:34:54      阅读:349      评论:0      收藏:0      [点我收藏+]

1.确定项目目录》vendor》topthink》think-captcha目录存在

技术分享图片

2.在config中添加验证码配置

//验证码配置
        ‘captcha‘ => [
    // 验证码字符集合
            ‘codeSet‘ => ‘2345678abcdefhijkmnpqrstuvwxyzABCDEFGHJKLMNPQRTUVWXY‘,
    // 验证码字体大小(px)
            ‘fontSize‘ => 20,
    // 是否画混淆曲线
            ‘useCurve‘ => true,
    // 验证码图片高度
            ‘imageH‘ => 42,
    //是否添加杂点
            ‘useNoise‘=>true,
    // 验证码图片宽度
            ‘imageW‘ => 148,
    // 验证码位数
            ‘length‘ => 4,
    // 验证成功后是否重置
            ‘reset‘ => true
        ],

3.模板captcha.html里输出验证码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>验证码</title>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
</head>

<body>
输入验证码:

<div>
    <img id="verify_img" src="{:captcha_src()}" alt="验证码" onclick="refreshVerify()">
    <a href="javascript:refreshVerify()">点击刷新</a>
</div>
<form class="layui-form" action="" >
    <input type="text" name = "verify">

    <button  class="layui-btn" lay-filter="checkcaptcha" lay-submit="" id="checkcaptcha" >
        保存
    </button>
</form>
<script>
    function refreshVerify() {
        var ts = Date.parse(new Date())/1000;
        var img = document.getElementById(verify_img);
        img.src = "{:captcha_src()}";
    }
</script>
<script>
    $(function  () {
        $("#checkcaptcha").on("click",function(){
            $.ajax({
                type: POST,
                url: "{:url(‘test/checkcaptcha‘)}",
                data:  $(".layui-form").serialize(),
                dataType: "json",
                async: false,
                error: function(request) {
                    alert("发送请求失败!");
                },
                success: function(data){
                    console.log(data);
                    if (data.status == 1) {
                       alert(data.message);

                    } else {
                        alert(data.message);
                    }
                }

            });
        })
    })
</script>

</body>
</html>

4.在控制器Test.php中书写验证码检验逻辑

//检验验证码 
 public function checkcaptcha()
    {
       $status=1;
        $captcha = input(‘verify‘);
        if(!captcha_check($captcha)){
            //验证码错误
           $message=‘验证码错误‘;

        }else{
            //验证码正确
            $message=‘验证码正确‘;
        }
        return [‘status‘=> $status, ‘message‘=> $message];
    }

 

thinkphp5验证码处理

原文:https://www.cnblogs.com/zhangyouwu/p/8478969.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!