欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

滑动验证码

程序员文章站 2022-05-13 15:00:26
...

我这里有一篇帖子,大家可以先看看点击打开链接,不明白的,我在以下,也有自己的心得体会,语言组织的差点,大家见谅,谢谢!


这是一个类似接口的一个东西,需要**,我配置到了配置文件中

 //***********************************极验-验证码*************************************
    'GEETEST_ID'             =>  '202c5c99f2cfa8e7a6e295a61c196cf5',                            // id
    'GEETEST_KEY'  =>  '9a6986177bb0deecffaf9812618e3432',                        // key

这样就好了,我们先让他显示出来,当然我想相信很多同学,在上面的链接中,也是可以完成的,就是复制粘贴。
                    <div id="captcha"></div>
<!--                    <div class="input" id="tip_content" style="text-align: center;width:470px;top:190px;color:red;">1111111</div>-->
                    <button  onclick="sub_index();" type="button" class="btn btn-success btn-block">登录</button> 
引入他的js

<script src="http://static.geetest.com/static/tools/gt.js"></script>
<!--极验验证码start-->
    <script type="text/javascript">
        var handler = function (captchaObj) {
            // 将验证码加到id为captcha的元素里
            captchaObj.appendTo("#captcha");
        };
        // 获取验证码
        $.get("<!--{:U('Site/Reg/geetest_show_verify')}-->",function(data) {
            // 使用initGeetest接口
            // 参数1:配置参数,与创建Geetest实例时接受的参数一致
            // 参数2:回调,回调的第一个参数验证码对象,之后可以使用它做appendTo之类的事件
            initGeetest({
                gt: data.gt,
                challenge: data.challenge,
                product: "float", // 产品形式
                offline: !data.success
            }, handler);
        },'json');
    </script>
然后我们生产验证码

/**
     *  方法名 :geetest_show_verify
     *  作  用 :生产验证码
     * @param :
     * @return:
     * @author:libo
     */
    public function geetest_show_verify(){

        $geetest_id = C('GEETEST_ID');

        $geetest_key=C('GEETEST_KEY');

        $geetest=new \Vendor\validate\Geetest($geetest_id,$geetest_key);

        $user_id = "test";
        $status = $geetest->pre_process($user_id);
        $_SESSION['geetest']=array(
            'gtserver'=>$status,
            'user_id'=>$user_id
        );
        echo $geetest->get_response_str();
    这样基本我们就可以在页面中看到了
然后就是你平时怎么做注册登录的流程!记得认真看上面链接里面的开源代码!

一下是检测验证码是否验证成功代码

  /**
         *  方法名 :geetest_chcek_verify
         *  作  用 :检测验证码
         * @param :* @param $data
         * @return:
         * @author:libo
         */
        function geetest_chcek_verify($data){
            $geetest_id = C('GEETEST_ID');
            $geetest_key=C('GEETEST_KEY');
            $geetest= new \Vendor\validate\Geetest($geetest_id,$geetest_key);
            $user_id=$_SESSION['geetest']['user_id'];
            if ($_SESSION['geetest']['gtserver']==1) {
                $result=$geetest->success_validate($data['geetest_challenge'], $data['geetest_validate'], $data['geetest_seccode'], $user_id);
                if ($result) {
                    return true;
                } else{
                    return false;
                }
            }else{
                if ($geetest->fail_validate($data['geetest_challenge'],$data['geetest_validate'],$data['geetest_seccode'])) {
                    return true;
                }else{
                    return false;
                }
            }
        }