Google Captcha 未在 GoDaddy 安全 (https) 中显示

Posted

技术标签:

【中文标题】Google Captcha 未在 GoDaddy 安全 (https) 中显示【英文标题】:Google Captcha not displaying in GoDaddy secure (https) 【发布时间】:2015-09-04 22:28:19 【问题描述】:

我遇到了一个问题,即 Google 的 reCaptcha 没有出现在我的 https 网站中,我想知道这里的其他人是否遇到过/正在遇到同样的问题并找到解决方法。

在我的测试环境 (localhost) 中,它看起来很好,我可以发送和接收表单。但是,将其上传到我的 GoDaddy 托管的安全网站后,reCaptcha 图像/div 没有出现,我完全不知道为什么。

请帮忙。

以下是我的部分代码(在本地主机中工作):

在“head”标签内

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

recaptcha 实际出现的“body”内部:

<div class="contact_text">
   <div class="g-recaptcha" id="googlecaptcha"
               data-sitekey="SITEKEYPLACEHOLDER"></div>
   <?php echo "<p class='text-danger col-xs-offset-6 col-xs-6'>$errCaptcha</p>";?>
</div>

然后是“php”部分:

$captcha = $_POST['g-recaptcha-response'];
$response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=SECRETKEYPLACEHOLDER&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']);
if($response.success==false)
    $errCaptcha = 'Please check captcha form';

我基于本教程https://codeforgeek.com/2014/12/google-recaptcha-tutorial/

重申一下,代码/页面/表单在我的 localhost 测试环境中工作,但在上传到我的 GoDaddy 托管的 https 网站时不显示。

感谢任何帮助或建议。谢谢。

更新:

由于我和任何人都没有关于这个主题的任何线索,我选择了一个不同的验证码,称为“secureimage”,它可以充分满足我的需求现在。我将保持这个问题的开放性,因为我真的很想使用 Google 的验证码,因为它具有直观的、令人印象深刻的复选框样式验证码。

希望不久的将来有人能找到方法。

解决方案:

从源路径中删除“https:”会正确显示 Google reCaptcha!

<script src='//www.google.com/recaptcha/api.js'></script>

代码块和表单现在可以工作了。谢谢 Matthew3k!

【问题讨论】:

@Hanoncs - 我可能会接受这个想法,但托管站点不是我的。它是客户的。在那张纸条上,是什么让你提出这个建议?在您看来,是什么让 GoDaddy 低于标准? 看看周围:antigodaddy.com, karveldigital.com/why-i-dont-use-godaddy-you-shouldnt-either, authormedia.com/6-reasons-authors-should-avoid-godaddy 除了坏事我什么也没听到。 GoDaddy 可能会阻止 file_get_contents 访问外部 URL,您能检查一下应该在 $response 中的数据吗? 验证码仍会显示,因为那是客户端 javascript 并且不受影响。共享主机有这样的限制是很常见的。制作一个执行类似操作的测试文件,它不必是有效数据,因为您至少应该从 URL 返回一个错误。 $response=file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=SECRETKEYPLACEHOLDER&amp;response=ABCD&amp;remoteip=ANYIP"); 这样你就知道你是否被屏蔽了。在此处查看示例响应:developers.google.com/recaptcha/docs/verify 您是否确定将您的网站添加到您帐户下的 reCaptcha 网站列表中?我建议确保您输入的名称正确,并且您使用的是该站点的正确密钥。 【参考方案1】:

从源路径中删除“https:”。

<script src='//www.google.com/recaptcha/api.js'></script>

我发现这种方法可以成功地在安全站点上加载跨域资源。

【讨论】:

以上是关于Google Captcha 未在 GoDaddy 安全 (https) 中显示的主要内容,如果未能解决你的问题,请参考以下文章

google captcha验证码生成工具使用教程 样式配置

google captcha验证码生成工具使用教程 样式配置

为啥英国签证申请注册页面不成功invalid captcha,please try again

如何在 android studio 中禁用 OTP Captcha

Google 广告未在特定应用中展示

myLocationButton 未在 Google 地图上显示