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&response=ABCD&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