繁体   English   中英

Google reCaptcha v2-在提交表单之前检查验证码是否已完成

[英]Google reCaptcha v2 - check captcha is completed before form submission

在提交表单之前检查用户是否确实完成了验证码的最佳做法是什么?

从文档中,我可以看到有2个回调函数data-callback和data-expired-callback。

计划是在成功完成或到期时将布尔javascript变量设置为true / false,然后在提交表单之前检查该变量是否为true。

从用户的角度来看,这将确保用户在提交前填写验证码。

恶意用户可能会覆盖javascript变量,但服务器端验证码验证可以防止这种情况。

首先,必须在form中放置onsubmit="return check()" 这意味着当您提交表单时,在发送数据之前它将执行名为check()的函数。 如果函数返回false ,则不会提交表单。 它看起来像这样:

<form action="page.php" method="POST" name="form" onsubmit="return checkCaptcha ()">

然后,您便有了功能:

<script language="javascript">
    function checkCaptcha ()
    {
        var captcha = document.getElementById('captcha ').value;

        if (captcha == "" || captcha == " ")
        {
            alert("please fill the captcha ");
            return false;
        }
        else
        if (captcha .length != 7)
        {
         return false 
        } // and so on
        else
        {
             // if everything is ok you can submit
            return true;
        }
    }
    </script>

暂无
暂无

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

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