Recaptcha 3实施问题

用户名

每当我提交表单时,即使存在有效令牌,我为无效令牌设置的错误消息也始终会触发。

<script src="https://www.google.com/recaptcha/api.js?render=SITE_KEY"></script>
<script>
grecaptcha.ready(function () {
    grecaptcha.execute('SITE_KEY', { action: 'contact' }).then(function (token) {
        var recaptchaResponse = document.getElementById('recaptchaResponse');
        recaptchaResponse.value = token;
    });
});

隐藏字段的形式:

 <input type="hidden" name="recaptcha_response" id="recaptchaResponse">

我正在序列化整个表格:

var form = $('#supportForm').serialize();

如果我在console.log上可以看到令牌,那么那里没有问题。

阿贾克斯:

    $.ajax({
        url: 'validate.php',
        type: 'POST',
        dataType: 'json',
        data: form,
       //

的PHP

$recaptcha_url = 'https://www.google.com/recaptcha/api/siteverify';
$recaptcha_secret = 'SECRET_KEY';

$recaptcha = file_get_contents($recaptcha_url . '?secret=' . $recaptcha_secret . '&response=' . $_POST['recaptcha_response']);
$recaptcha = json_decode($recaptcha);


  if(!$recaptcha->success) {
        $message .= "'Robot verification passed, please try again";
   }

我不知道它是否失败,因为在我的Google帐户中,我将域设置为mydomain.com,但该表格实际上位于mydomain.com/subdirectory

设置验证码时,我无法添加子目录。

亚历山德罗

您可能需要allow_url_fopen在PHP设置中启用file_get_contents才能正常工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章