Emlog评论添加极验(geetest滑块验证码)

发布于 / PHP / Comments Off on Emlog评论添加极验(geetest滑块验证码)

    提示:本功能已打包整理成插件,有需要的点击这里查看详情

1,点击进入极验官网注册账号,添加验证网站,获得一个ID和KEY

2,下载极验SDK,点击进入github项目地址,找到class.geetestlib.php,在<?php下一行添加

define("CAPTCHA_ID", "你的ID");
define("PRIVATE_KEY", "你的KEY");

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

3,新建个php文件,名字为gtapi.php,内容为

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

然后上传到/include/lib中。

4,找到/include/controller/comment_controller.php,编辑,

在<?php下面添加

session_start();

在$pid = isset($_POST['pid']) ? intval($_POST['pid']) : 0;后面添加

 $isper=false;

接着,在doAction('comment_post');后面添加

[hide]

require_once '/include/lib/class.geetestlib.php';
    $GtSdk = new GeetestLib(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('评论失败:请正确滑动滑块验证码');
    }

[/hide]

保存。

如果找不到位置的,请看图片参考添加。注意引用文件的地址。




5,找到模板文件目录(/content/templates/)下的module.php,找到你评论的表单,在评论内容框下面添加

<br>
<div id="embed-captcha"></div>
<br>

接着找到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>

保存。如果找不到位置的,下面图片仅供参考


最后,刷新一下页面,极验已经安装完毕了,可以使用了。


转载原创文章请注明,转载自: 斐斐のBlog » Emlog评论添加极验(geetest滑块验证码)
评论已关闭