2016-10-20 208 views
1

我正在研究域名的查询表单,并对其执行google reCaptcha。 reCaptcha在使用xampp的本地服务器上正常工作,但是当我将它上载到服务器上时,即使我检查了capcha,它总是会响应success = false。这里是我的代码:Google reCaptcha在本地服务器上工作,但不在在线服务器上

$url = 'https://www.google.com/recaptcha/api/siteverify'; 
    $privatekey = "KEY"; 

    $response = file_get_contents($url."?secret=".$privatekey."&response=".$_POST['g-recaptcha-response']."&remoteip=".$_SERVER['REMOTE_ADDR']); 

    $data = json_decode($response); 

    if(isset($data->success) AND $data->success==true){ 
     //some code 
    } 
    else{ 
     //some code 
    } 

我使用一个单独的密钥为我的本地发展和活的一个。我相信我使用正确的密钥和sitekey当我上传到服务器。任何想法为什么发生这种情况?

+0

基于实时url生成API密钥。它会起作用..! – Elangovan

+0

您的'$ data'对象包含'error-codes'属性。这会告诉你出了什么问题。 – simon

+0

我试着在我的本地服务器上倾倒recaptcha响应,但他们没有错误代码 – Nash

回答

0

我的第一本能就是区分大小写。这意味着该目录已被Windows授予一个(或多个)大写字母。尽管Windows将大写和小写视为相同,但其他操作系统不会。

因此,我建议在服务器上重新检查所有文件和目录名称都是小写字母。希望能够解决你的问题。

+0

区分大小写不能是问题这里。 'file_get_contents(“https:// ...'将被PHP拦截,并且永远不会传递给Windows文件系统。 –

相关问题