zoukankan      html  css  js  c++  java
  • GeeTest 极验验证

    举个简单的例子,登录验证

    1.先引入js库

    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js"></script>
    <script src="http://static.geetest.com/static/tools/gt.js"></script>

    2.html代码

    <div style="margin:300px;" >
            <div id="captcha"></div>
            <button type="submit" id="login">Login</button>
    </div>

    3.前端验证

    <script>
        var handler = function (captchaObj) {
            // 将验证码加到id为captcha的元素里
            captchaObj.appendTo("#captcha");
         };
        // 获取验证码
        $.get("{:U('Home/Index/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>

    4.后端验证码生成

        /**
         * geetest生成验证码
         */
        public function geetest_show_verify(){
            $geetest_id=C('GEETEST_ID');
            $geetest_key=C('GEETEST_KEY');
            $geetest=new OrgXbGeetest($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();
        }

    5.调用验证

     if(!geetest_chcek_verify(I('post.'))){
         $this->error('验证码错误');
         die;
    }
  • 相关阅读:
    logging模块
    configparser模块
    hashlib模块
    shutil模块
    json与pickle模块
    random模块
    OS模块
    如何不使用共享内存实现windows与虚拟机中进行文件的传输
    结构体的定义方式(仅定义)
    数据结构练习之寻找顺序表中的主要元素
  • 原文地址:https://www.cnblogs.com/daxian2012/p/9361250.html
Copyright © 2011-2022 走看看