我遇到了一个问题,谷歌的 reCaptcha 没有出现在我的 https 网站中,想知道这里的其他人是否遇到/正在遇到同样的问题并找到了解决方法。
在我的测试环境(本地主机)中,它看起来很好,我能够发送和接收表单。但是,将其上传到我的 GoDaddy 托管的安全网站后,reCaptcha 图像/div 没有出现,我丝毫不知道为什么。
请帮忙。
以下是我的代码的一部分(在本地主机中工作):
在"头部"标签内
<script src='https://www.google.com/recaptcha/api.js'></script>
在实际出现验证码的"正文"中:
<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:"可以正确显示谷歌验证码!
<script src='//www.google.com/recaptcha/api.js'></script>
代码块和表单现在可以工作了。谢谢马修3k!
从源路径中删除"https:"。
<script src='//www.google.com/recaptcha/api.js'></script>
我发现这种方法可以成功在安全站点上加载跨域资源。