Google recaptcha:不正确的captcha-sol错误




我在5月PHP联系表中使用Google Captcha遇到问题。
我遵循了Google官方指南,我编写的代码似乎是正确的,但我始终收到不正确的captcha-sol 错误。

客户端代码:

<div class="row">
    <div class="12u">
        <form id="mailform" method="post" action="website_mailer.php" novalidate="novalidate">
            <div>
                <div class="row half">
                    <div class="6u">
                        <input type="text" name="name" id="name" placeholder="Name" />
                    </div>
                    <div class="6u">
                        <input type="text" name="email" id="email" placeholder="Email" />
                    </div>
                </div>
                <div class="row half">
                    <div class="12u">
                        <input type="text" name="subject" id="subject" placeholder="Subject" />
                        <input type="text" class="myantispam" name="leaveblank">
                        <input type="text" class="myantispam" name="dontchange" value="http://" >
                    </div>
                </div>
                <div class="row half">
                    <div class="12u">
                        <textarea name="message" id="message" placeholder="Message"></textarea>
                    </div>
                </div>
                <div class="row half">
                    <div class="4u">
                        <div class="g-recaptcha" data-sitekey="xxxx"></div>
                    </div>
                    <div class="8u">
                        <a href="#" class="button form-button-submit">Send Message</a>
                        <a href="#" class="button button-alt form-button-reset">Clear Form</a>
                    </div>
                </div>
            </div>
        </form>
    </div>
</div>

服务器端代码(PHP(:

<?php
require_once('recaptchalib.php');
$privatekey = "xxx";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
        die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
         "(reCAPTCHA said: " . $resp->error . ")");
    } else {
      /* proper code */
    }
?>

您能建议我解决方案吗?我找不到解决方案。

谢谢!

我使用以下代码

解决了问题
$response=json_decode(file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=SECRET_KEY_HERE&response=".$captcha."&remoteip=".$_SERVER['REMOTE_ADDR']), true);
if($response['success'] == false){
    //Captcha incorrect
}
else {
    //Success code here
}

而不是

<?php
require_once('recaptchalib.php');
$privatekey = "xxx";
$resp = recaptcha_check_answer ($privatekey,
                                $_SERVER["REMOTE_ADDR"],
                                $_POST["recaptcha_challenge_field"],
                                $_POST["recaptcha_response_field"]);
if (!$resp->is_valid) {
        die ("The reCAPTCHA wasn't entered correctly. Go back and try it again." .
         "(reCAPTCHA said: " . $resp->error . ")");
    } else {
      /* proper code */
    }
?>

感谢Locke Donohoe在这里提出答案。

root目录中的脚本创建php.ini文件:

allow_url_fopen = on

相关内容

最新更新