2011-07-26 9 views
1

ajaxでrecaptchaを検証しようとしていますが、唯一の問題は、常にそれが正しいことをしたときでもrecapthcaが間違って入力されたことです。 私のコードに何が間違っているのだろうか?私は、公開鍵と秘密鍵が正しい場合、私はすでに確認され、このajaxの検証でrecaptchaでエラー

<?php 
    require_once('recaptcha/recaptchalib.php'); 
    define("PUBLICKEY",""); 
    define("PRIVATEKEY"," "); 
?> 

<div id="contact-form"> 
<?php echo $content; ?> 
     <form action="#" method="POST" id="contactForm" onSubmit="return validateCaptcha()"> 
    <div class="form"> 
      <label for="name">Your Name: <span class="requireds">(Required)</span><br /></label> 
      <input id="name" name="name" class="text-input" minlength="2" /> 
    </div> 
    <div class="form"> 
      <label for="email">Your Email:<span class="requireds">(Required)</span><br /></label> 
      <input id="email" name="email" class=" text-input" /> 
    </div> 
    <div class="form"> 
      <label for="phone">Your Phone:<br /></label> 
      <input id="phone" name="phone" type="text" maxlength="200" class="text-input" /> 
    </div> 
    <div class="form"> 
      <label for="reason">Contact reason:<br /></label> 
      <select id="reason" name="reason" class="select"> 
       <option>Sales question </option> 
       <option>Time/ Delivery</option> 
       <option>My existing Order</option> 
       <option>Technical Question</option> 
       <option>Revision/ Support</option> 
       <option>Other</option> 

      </select> 
    </div> 
    <div class="form"> 
      <label for="message">Message: <span class="requireds">(Required)</span> <br /></label> 
      <textarea id="message" name="message" class="textarea"></textarea> 
    </div> 

    <div style="margin:10px 0; width:495px; -moz-border-radius:3px; border-radius:3px;"> 
       <p style="color: #f14444; text-align:right; font-size:12px" id="captchaStatus">&nbsp;</p> 
        <?php echo recaptcha_get_html(PUBLICKEY); ?> 

     </div> 
     <input type="submit" value="" class="send"/> 

    </form> 

を持つフォームページ上の

<?php 
    require_once('recaptcha/recaptchalib.php'); 
    define("PUBLICKEY"," "); 
    define("PRIVATEKEY"," "); 

    $resp = recaptcha_check_answer ($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]); 
    if ($resp->is_valid) { 
    ?>success<? 
     $name = $_POST['name']; 
     $email = $_POST['email']; 
     $phone = $_POST['phone']; 
     $reason = $_POST['reason']; 
     $header = 'From: ' . $email . " \r\n"; 
     $msg = "Sent from: " . $name . "\r\n"; 
     $msg .= "Email: " . $email . " \r\n"; 
     $msg .= "Phone: " . $phone . " \r\n"; 
     $msg .= "Contact reason:" . $reason . " \r\n"; 
     $msg .= "Message: " . $_POST['message'] . " \r\n"; 
     $msg .= "Date and time " . date('d/m/Y', time()); 

     $to = ''; 
     $subject = 'contact page'; 

     mail($to, $subject, utf8_decode($msg), $header); 
    } 
    else 
    { 
    die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." . 
     "(reCAPTCHA said: " . $resp->error . ")"); 
    } 
?> 

.. 誰かがこのコードに間違っているかについての考えを持っていますか?

+0

どのようなHTMLが生成されますか? –

+0

どういう意味ですか?申し訳ありません、非常に低い英語レベル!私はページをテストするとき何が間違っているのですか? – karlelizabeth

+0

ブラウザでフォームページを見ると、ソースが表示され、その内容を教えてください –

答えて

0

あなたのAPIキーが適切に提出されていないことを私に伝えますreCAPTCHAの提出時にこのエラーを受け取っている:reCAPTCHAのを使用するには

をあなたはhttps://www.googleからAPIキーを取得する必要があります。 COM/reCAPTCHAの/管理/作成

更新:

recaptcha_check_answer ($privatekey,

そこに問題がありますか?あなたはPRIVATEKEYの代わりに$privatekeyを使用していますので、実際には秘密鍵として何も提出していません。エラーは正しいです(エラーメッセージを信頼してください!)。私はこれをデバッグするためにChromeのデベロッパーツール(Ctrl + Shift + i)を使用しています。

+0

recpatchaキーは大丈夫です!私は本当に何が分かっていないのですか?しかし、鍵は大丈夫です! – karlelizabeth

+0

ありがとうございます!あなたは正しかった...たくさんありがとう! – karlelizabeth