栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

验证码不在jquery端进行验证。

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

验证码不在jquery端进行验证。

首先,请确保您已包含必要的Javascript资源以正确呈现reCAPTCHA小部件,如下所示:

<html>  <head>    <title>reCAPTCHA demo: Simple page</title>     <script src="https://www.google.com/recaptcha/api.js" async defer></script>  </head>  <body>    <form action="?" method="POST">      <div  data-sitekey="your_site_key"></div>      <br/>      <input type="submit" value="Submit">    </form>  </body></html>

这是参考:

  • 显示小部件

现在是用户的响应。用户验证码质询的响应可以三种方式获取。可以是

  • g-recaptcha-response- 提交表单中的POST参数
  • grecaptcha.getResponse(widget_id) -在用户完成验证码输入后将提供响应。
  • 传递给render方法的config对象中指定的回调函数的字符串参数。

这是参考:

  • 验证用户的响应

出于您的目的,请使用 grecaptcha.getResponse() 获取用户的响应。

作为旁注,请使用 grecaptcha.reset() 要求最终用户再次使用reCAPTCHA进行验证。从手册中:

如果您的网站使用AJAX请求执行服务器端验证,则应该只验证一次用户的reCAPTCHA响应令牌( g-recaptcha-response
)。如果使用特定令牌进行了验证尝试,则无法再次使用它。您将需要调用 grecaptcha.reset()
来要求最终用户再次使用reCAPTCHA进行验证。

这是您的 HTML 代码:

<form method = "POST" name = "register" id = "register"  role="form" action="login.html">    <div >        <input type="text" name = "fname" id = "fname"  placeholder="First Name" required="">    </div>    <div >        <input type="text" name = "lname" id = "lname"  placeholder="Last Name" required="">    </div>    <div >        <input type="email" name = "email" id = "email"  placeholder="Email" required="">    </div>    <div >        <input type="password" name = "password" id = "password"  placeholder="Password" required="">    </div>    <div >        <input type="mobile" name = "mobile" id = "mobile"  placeholder="Mobile No" required="">    </div>    <div   id="recaptcha_widget">        <div > <div  data-sitekey="XXXXXX_SITE-KEY_XXXXXXX"></div> <!-- End Thumbnail-->        </div>    </div>    <button type="submit" name = "submit" id = "submit" >Register</button></form><p ><small>Already have an account?</small></p><a  href="login.html">Login</a>

您的 jQuery 应该是这样的:

$(document).ready(function(){    //execute's the function on click    $("#submit").click(function(e){        var recaptchaResponse = grecaptcha.getResponse();        var status = $('form')[0].checkValidity();        if(status){  $.ajax({     url: "process.php",     type: "POST",     data: {         fname: $("#fname").val(),         lname: $("#lname").val(),         email: $("#email").val(),         password: $("#password").val(),         mobile: $("#mobile").val(),         recaptchaResponse: recaptchaResponse     },     async: false,     dataType: "JSON",           success: function (json){         if(json.error){  alert(json.error_msg);  grecaptcha.reset();  e.preventDefault();         }else{  alert("Registeration successful!",json.user.email);  $('#register').submit();         }     },     error: function(jqXHR, textStatus, errorThrown){         alert(errorThrown);     } });        }    });});

最后,您的 PHP 应该是这样的:

<?php    // your pre    //your site secret key    $secret = 'XXXXXXX_Secret-key_XXXXXXX';    if(isset($_POST['recaptchaResponse']) && !empty($_POST['recaptchaResponse'])){        //get verified response data        $param = "https://www.google.com/recaptcha/api/siteverify?secret=".$secret."&response=".$_POST['recaptchaResponse'];        $verifyResponse = file_get_contents($param);        $responseData = json_depre($verifyResponse);        if($responseData->success){ // success        }else{ // failure        }    }    // your pre?>


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/449311.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号