繁体   English   中英

google recaptcha v2 验证已过期,但浏览器警报未弹出

[英]google recaptcha v2 verification expired but browser alert doesnt pop up

我有一个带有验证码的工作表。 当我加载网页并单击提交而不选中该框时,会显示警报(单击机器人),但是如果我让验证码过期并再次单击提交,则不会再弹出警报。 下面的代码有什么问题或有什么方法可以重写它吗?

<script>
    window.onload = function() {
    var recaptcha = document.forms["form"]["g-recaptcha-response"];
    recaptcha.required = true;
    recaptcha.oninvalid = function(e) {     
        alert("Please click on i am not a robot");
        }
    }
</script>

<script src="https://www.google.com/recaptcha/api.js"></script>

<div class="g-recaptcha" data-sitekey="xxx" data-callback="recaptcha"></div>

请看一下我的服务器端 php。 过去几天我多次尝试添加数据过期回调,但无法使其正常工作。

$recaptcha_secret = "xxx";
        $response = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=".$recaptcha_secret."&response=".$_POST['g-recaptcha-response']);
        $response = json_decode($response, true);
        if($response["success"] === true) {

                mail($to, $subject, $body, "From:" . $email);

        }
        else
        {

        return false;

        }
        echo 'success';
    }

当用户选择复选框和选中的令牌过期时,重新验证码提供callback handlers 例如

 <div class="g-recaptcha" id="headerCaptcha" data-callback="recaptchaCallbackHeader" data-expired-callback="recaptchaExpiryHeader" data-sitekey="xxx"></div>
 // There should be expiry handler like 
function recaptchaExpiryHeader(){
    alert('You should have to check captcah again as it is expired');
}  

更多相同

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM