2011-12-22 38 views
1

我在我的網站上執行reCaptcha時遇到問題。PHP中的奇怪reCaptcha錯誤

我跟着這裏的教程:http://code.google.com/apis/recaptcha/docs/php.html,並實施了一個基本的reCaptcha與一個錯誤消息。

下面是一些自定義代碼我在文件中使用的形式提交到:

if (!$resp->isValid) { 
     $_SESSION['badLoginCount'] += 1; 
     $_SESSION['incorrect-captcha'] = true; 
     $_SESSION['incorrect-captcha-error'] = $resp->error; 
     header ('Location: ../../signin.php'); 
     exit; 
    } 

如果用戶鍵入了不正確的reCAPTCHA,頁面重定向,並顯示爲預期的錯誤。然而,當用戶輸入正確的reCaptcha時,isValid仍然評估爲FALSE並運行此分支,但$ resp->錯誤不包含任何內容,這使得幾乎不可能進行調試。

有沒有人遇到過這個?我無法在網上找到任何東西。

+0

只是爲了檢查。您是否檢查過發送給recaptcha功能的POST字段的內容? – Alfabravo 2011-12-22 11:55:19

+0

是的,recaptcha_response_field返回我輸入的值,該reaptcha_challenge_field返回一些散 – Tom 2011-12-22 11:59:18

+0

檢查http://code.google.com/apis/recaptcha/docs/troubleshooting.html「它不工作」。檢查您的形式和您的鑰匙 – Alfabravo 2011-12-22 12:02:41

回答

0

一個快速和hacky的解決方法是檢查$resp->error是否爲空。

if (!empty($resp->error)) { 
    $_SESSION['badLoginCount'] += 1; 
    $_SESSION['incorrect-captcha'] = true; 
    $_SESSION['incorrect-captcha-error'] = $resp->error; 
    header ('Location: ../../signin.php'); 
    exit; 
}