Php reCAPTCHA在本地主机上工作,但在远程服务器上不工作
我在将reCAPTCHA添加到我的网站时遇到一些问题。下面的代码在本地主机上运行正常,但在远程服务器上运行不正常Php reCAPTCHA在本地主机上工作,但在远程服务器上不工作,php,recaptcha,Php,Recaptcha,我在将reCAPTCHA添加到我的网站时遇到一些问题。下面的代码在本地主机上运行正常,但在远程服务器上运行不正常 if (isset($_POST['g-recaptcha-response'])) { $secret = '6LcUahkTAOlz-3iYApxHVjUC6wSc30G'; $ip = $_SERVER['REMOTE_ADDR']; //var_dump($ip); works fine on both local and remote
if (isset($_POST['g-recaptcha-response'])) {
$secret = '6LcUahkTAOlz-3iYApxHVjUC6wSc30G';
$ip = $_SERVER['REMOTE_ADDR'];
//var_dump($ip); works fine on both local and remote
$captcha = $_POST['g-recaptcha-response'];
$rsp = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secret&response=$captcha&remoteip=$ip");
var_dump($rsp);
$validation = json_decode($rsp, TRUE);
var_dump($validation);
if ($validation['success'] !== true) {
$errors[] = 'CAPTCHA failed. Please try again.';
}
}
var_转储($rsp)返回:
本地主机:
string(91) "{ "success": false, "challenge_ts": "2016-02-27T17:08:05Z", "hostname": "localhost" }"
或
远程服务器始终返回:
bool(false)
NULL
var_dump($validation)返回:
本地主机:
array(3) { ["success"]=> bool(false) ["challenge_ts"]=> string(20) "2016-02-27T17:08:05Z" ["hostname"]=> string(9) "localhost" }
或
远程服务器始终返回:
bool(false)
NULL
我不是程序员,知识有限。
提前感谢您的帮助 我找到了答案:
我的远程主机php文件上未启用allow\u url\u fopen!
谢谢 把问题交给程序员吧,因为在公开的网站上发布秘密并不是最聪明的主意。谢谢你的回复。我在发布之前修改了它,这显然不是真正的密钥。我没有程序员,我是在别人的帮助下自己创建网站的。我只是想将reCAPTCHA添加到我的注册页面,因为我的数据库已经被机器人超载。如果您知道为什么相同的代码在服务器之间的行为不同,请告诉我。谢谢您是否在recaptcha上正确注册了域和所有内容?你不能只生成两个密钥,然后在你想要的任何地方使用它们,它们必须绑定到网站的地址。这对我也很有用。我的Web主机上缺少该php指令。谢谢