2012-05-06 39 views
4

這是我第一次在我的網站上使用recaptcha。Google reCaptcha says:invalid-request-cookie

我使用PHP API來驗證的ReCaptcha,它口口聲聲說invalid-request-cookie

我發現在不同的論壇,www.example.com與example.com不同,所以我重新註冊我的網站不www ,但它仍然不工作..

當我驗證recaptcha_response_fieldrecaptcha_challenge_field的值是正確的。

這裏是驗證碼檢查:

require_once(recaptchalib.php'); 

$publickey = "not displayed"; //for security 
$privatekey = "not displayed"; //for security 
$error = null; 

if($_POST) { 
    $arr = array('a' => $_POST['task'], 'b' => $_POST['recaptcha_challenge_field'], 'c' => $_POST['recaptcha_response_field']); 

    if(trim($arr['a']) == 'captcha') { 
     $resp = null; 
     $error = null; 
     $captcha_result = 'success'; 
     $resp = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $arr['b'], $arr['c']);  

     if($resp->error){ 
      $captcha_result = 'fail'; 
     } 
     echo $captcha_result; 
    } 
} 

這裏是HTML代碼:

   <div id="captcha-div"> 
       <script type="text/javascript"> 
          var RecaptchaOptions = { 
           tabindex: 1, 
           theme: 'custom', 
           custom_theme_widget: 'recaptcha_widget' 
          }; 
         </script> 
       <div id="recaptcha_widget" style="display:none"><div id="recaptcha_image" style="width: 200px; height: 57px; "></div> 
       <?php echo recaptcha_get_html($publickey, $error); ?> 
       <div class="recaptcha_only_if_incorrect_sol" style="color:red">Incorrect. Try Again.</div> 
       <span class="recaptcha_only_if_audio">Type what you hear</span> 
       <input type="text" id="recaptcha_response_field" name="recaptcha_response_field"> 
       <div class="recaptcha_only_if_audio"><a href="javascript:Recaptcha.switch_type(&#39;image&#39;)">Kumuha ng larawang CAPTCHA</a></div> 

       <script type="text/javascript" src="http://www.google.com/recaptcha/api/challenge?k=6Le_X88SAAAAAAH3NEbkIr3w75SEQnQYwl96Y7f0"></script> 
       <noscript><iframe src="http://www.google.com/recaptcha/api/noscript?k=6Le_X88SAAAAAAH3NEbkIr3w75SEQnQYwl96Y7f0" height="300" width="500" frameborder="0"></iframe><br> 
       <textarea name="recaptcha_challenge_field" rows="3" cols="40"> 
          </textarea> 
       <input type="hidden" name="recaptcha_response_field" value="manual_challenge"></noscript></div> 
       <script type="text/javascript"> 
        window.onload = function() { 
         Recaptcha.focus_response_field(); 
        } 
       </script> 
       <p id="captcha-error" style="color:red; font-weight:bold;"></p> 
      </div> 
      <div><a id="captcha-refresh" href="javascript:Recaptcha.reload()"></a></div> 
      <div class="recaptcha_only_if_image"><a id="captcha-audio" href="javascript:Recaptcha.switch_type(&#39;audio&#39;)"></a></div> 
      <div><a id="captcha-help" href="javascript:Recaptcha.showhelp()"></a></div> 
      <div id="circle-submit"></div> 

誰能幫我這個問題?

感謝, 賈斯汀

+0

您可以將您的代碼和cookie傳遞給google recapcha嗎? –

+0

也嘗試讓您的網站在全球範圍內:https://www.google.com/recaptcha/admin/ –

+0

@daniilr - 是的,我選中了使用全局的框。我如何獲得傳遞給谷歌的cookie?我也把代碼驗證碼檢查.. – justin

回答

2

由於reCAPTCHA Support says

不,這不會導致無效的域名。這意味着您沒有正確提交recaptcha_challenge_field到服務器。

因此,請確保您使用recapcha正確渲染窗體。檢出this link

+0

嗯..如何檢查,如果你通過正確的'recaptcha_challenge_field'?因爲當我檢查'recaptcha_challenge_field'並且javascript正在獲取時,它就是相同的。 – justin

+0

發佈表單的HTML部分。 –

+0

我已發佈HTML代碼。 – justin