2016-02-27 138 views
0

我在將reCAPTCHA添加到我的網站時遇到了一些問題。下面的代碼可以在我的本地主機上正常工作,但不在我的遠程服務器上。reCAPTCHA在本地主機上工作,但不在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_dump($ RSP)返回:

本地主機:

string(91) "{ "success": false, "challenge_ts": "2016-02-27T17:08:05Z", "hostname": "localhost" }" 

string(90) "{ "success": true, "challenge_ts": "2016-02-27T17:41:40Z", "hostname": "localhost" }" 

遠程服務器總是返回:

bool(false) 

的var_dump($確認)返回:

本地主機:

array(3) { ["success"]=> bool(false) ["challenge_ts"]=> string(20) "2016-02-27T17:08:05Z" ["hostname"]=> string(9) "localhost" } 

array(3) { ["success"]=> bool(true) ["challenge_ts"]=> string(20) "2016-02-27T17:41:40Z" ["hostname"]=> string(9) "localhost" } 

遠程服務器總是返回:

NULL 

我不是一個程序員,有有限的知識。 預先感謝您的幫助!

+0

然後把問題交給程序員,因爲在公開網站上發佈機密並不是有史以來最聰明的主意。 – walther

+0

謝謝你的迴應。我在發佈之前修改了它,這顯然不是真正的祕密密鑰。我沒有程序員,我自己在幫助下創建了我的網站。我只是想將reCAPTCHA添加到我的註冊頁面,因爲我的數據庫已經過載了機器人。 – user1794825

+0

讓我知道,如果你有任何想法,爲什麼相同的代碼在服務器之間表現不同。謝謝! – user1794825

回答

1

我找到了答案: allow_url_fopen沒有啓用我的遠程主機的PHP文件! 謝謝!

+0

它也適用於我。該PHP指令在我的虛擬主機上丟失。謝謝! –

相關問題