reCAPTCHA停止工作-无效的加密

时间:2018-10-21 15:53:20

标签: javascript php html recaptcha

我已经在网站上使用reCAPTCHA一段时间了,突然我意识到它已经停止工作了。 reCAPTCHA在那里,但是在正确验证之后,响应FAILS失败,这使得表单提交失败。

在客户端控制台上,浏览器显示错误:

  

未捕获(承诺)的无效加密。

我尝试搜索此错误,但找不到任何类似的内容。 提交表单后,PHP中的服务器端验证失败。我不确定上面的错误是否相关,但是以前从未出现过。

客户端集成示例页面:

<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 class="g-recaptcha" data-sitekey="your_site_key"></div>
      <br/>
      <input type="submit" value="Submit">
    </form>
   </body>
</html>

服务器端验证PHP:

$response = json_decode( 
    file_get_contents( 
 "https://www.google.com/recaptcha/api/siteverifysecret=MY_SECRET&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR'] ), true );

if($response['success'] == false){
    echo "FAIL";
} else {
    //do something
}

我已按照here中的说明进行操作。

2 个答案:

答案 0 :(得分:3)

昨天我遇到了同样的问题。 Google似乎已经意识到了这个问题,并且正在努力解决它。他们声称它不应该影响reCAPTCHA的整体功能。

我获得了此信息here

下面是对话的屏幕截图。

Screen shot of Google forum

答案 1 :(得分:0)

似乎来自Jessica的答案就是浏览器中的错误。 但是,除了错误,我的reCaptcha验证失败。我将Web服务器的PHP版本从7.0更新到7.1。这解决了我的问题。 因此,如果您在验证时遇到麻烦,不仅浏览器中出现错误消息,请检查您的Web服务器的PHP版本。