ошибка в recaptcha с проверкой ajax - PullRequest
1 голос
/ 26 июля 2011

я пытаюсь проверить recaptcha с помощью ajax, единственная проблема, с которой я сталкиваюсь, заключается в том, что всегда говорится, что recapthca была введена неправильно! Даже когда я все сделал правильно! мне действительно интересно, что не так с моим кодом!

<?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 . ")");
    }
?>

на странице формы у меня есть

<?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> 

Я уже проверил правильность открытого и закрытого ключей. кто-нибудь имеет представление о том, что не так в этом коде?

1 Ответ

0 голосов
/ 26 июля 2011

Вы получаете эту ошибку при отправке recaptcha, который говорит мне, что ваш ключ API не передается должным образом:

Чтобы использовать reCAPTCHA, вы должны получить ключ API от https://www.google.com/recaptcha/admin/create

Обновление:

recaptcha_check_answer ($privatekey,

У вас есть проблема?Вы используете $privatekey вместо PRIVATEKEY, поэтому вы фактически ничего не отправляете в качестве своего личного ключа.Ошибка была правильной (доверяйте сообщениям об ошибках!).Я использую встроенные в Chrome инструменты разработчика (Ctrl + Shift + i) для отладки.

...