Emlog接入极验系统代码教程

Emlog接入极验系统代码教程

一、注册与准备

  1. 注册账号:首先,访问极验官网注册账号,添加验证网站,获得一个ID和KEY。
  2. 下载SDK:进入github项目地址,找到class.geetestlib.php文件。在<?php下一行添加:
    define("CAPTCHA_ID", "你的ID");
    define("PRIVATE_KEY", "你的KEY");

    然后上传到网站目录的/include/lib中。

二、配置PHP文件

  1. 新建gtapi.php文件
    <?php
    require_once "/include/lib/class.geetestlib.php";
    $GtSdk = new GeetestLib(CAPTCHA_ID, PRIVATE_KEY);
    session_start();
    $user_id = "test";
    $status = $GtSdk
    $_SESSION['gtserver'] = $status;
    $_SESSION['user_id'] = $user_id;
    echo $GtSdk->get_response_str();

    然后上传到/include/lib中。

三、编辑控制器文件

  1. 编辑comment_controller.php文件

    <?php
    session_start();
    $isper=false;
    $pid = isset($_POST['pid']) ? intval($_POST['pid']) : 0;
    doAction('comment_post');
    
    require_once '/include/liblib.php';
    $GtSdkLib(CAPTCHA_ID, PRIVATE_KEY);
    $user_id = $_SESSION['user_id'];
    
    if ($_SESSION['gtserver'] == 1) { //服务器正常
       $result = $GtSdk->success_validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode'], $user_id);
       if ($result) {
           $isper=true;
       }
    } else { //服务器宕机,走failback模式
       if ($GtSdk->fail_validate($_POST['geetest_challenge'], $_POST['geetest_validate'], $_POST['geetest_seccode'])) {
           $isper=true;
       }
    }
    
    if ($Comment_Model->isLogCanComment($blogId) === false) {
       emMsg('评论失败:该文章已关闭评论');
    } elseif (!$isper) {
       emMsg('评论失败:请正确滑动滑块验证码');
    }

    注意引用文件的地址。

四、修改模板文件

  1. 修改模板文件
    在模板文件目录(/content/templates/)下的module.php中找到评论表单,在评论内容框下面添加:
    <div id="embed-captcha"></div>

    然后找到footer.php,在</body>前面添加:

    <script src="http://static.geetest.com/static/tools/gt.js"></script>
    <script>
    var handlerEmbed = function (captchaObj) {
       $("#submit").click(function (e) {
           var validate = captchaObj.getValidate();
           if (!validate) {
               $("#notice")[0].className = "hide";
               setTimeout(function () {
                   $("#notice").className = "hide";
               }, 20);
               e.preventDefault();
           }
       });
       captchaObj.appendTo("#embed-captcha");
       captchaObj.onReady(function () {
       });
    };
    $.ajax({
       url: "/include/lib/gtapi.php?type=pc&t=" + (new Date()).getTime(),
       type: "get",
       dataType: "json",
       success: function (data) {
           initGeetest({
               gt: data.gt,
               challenge: data.challenge,
               product: "float",
               offline: !data.success
           }, handlerEmbed);
       }
    });
    </script>

五、完成与测试

完成上述步骤后,刷新页面,极验滑块验证码应已成功接入Emlog系统。此时,用户在进行评论时需要完成滑块验证才能提交评论。

通过以上步骤,你可以在Emlog系统中成功接入极验滑块验证码,提升网站的安全性。