我遇到一个问题,Google 的 reCaptcha 没有出现在我的 https 网站上,我想知道这里是否有其他人遇到过/正在遇到同样的问题,并且找到了解决方法。
在我的测试环境 (localhost) 中,它看起来很好,我能够发送和接收表单。然而,将其上传到我的 GoDaddy 托管安全网站后,reCaptcha 图像/div 没有出现,我一点也不知道为什么。
请帮忙。
以下是我的部分代码(在本地主机上运行):
在“head”标签内
<script src='https://www.google.com/recaptcha/api.js'></script>
在 recaptcha 实际出现的“正文”内:
<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/
重申一下,代码/页面/表单在我的本地主机测试环境中工作,但在上传到我的 GoDaddy 托管的 https 网站时不显示。
我感谢任何帮助或建议。谢谢。
更新:
因为我和任何人都没有关于这个主题的任何线索,所以我选择了一个名为“secureimage”的不同验证码,它目前足以满足我的需求。我会保留这个问题,因为我真的很想使用谷歌的验证码,因为它具有直观、令人印象深刻的复选框样式验证码。
希望不久的将来有人能找到方法。
解决方案:
从源路径中删除“https:”可以正确显示 Google reCaptcha!
<script src='//www.google.com/recaptcha/api.js'></script>
代码块和表单现在可以使用了。谢谢 Matthew3k!
最佳答案
从源路径中删除“https:”。
<script src='//www.google.com/recaptcha/api.js'></script>
我发现这种方法可以成功地在安全站点上加载跨域资源。
关于php - Google 验证码未在 GoDaddy 安全 (https) 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30929665/