为什么我会收到“Undefined index:recaptcha_response_field”?

时间:2014-01-03 13:29:49

标签: php recaptcha

这是我的表单代码:

echo '
              <div class="ctext" id="form">
                    <table><form method="post" action="prashanja.php">
                    <tr><td>Name:</td><td><input type="text" name="name"/></td></tr>
                   <tr><td>Question:</td><td><textarea cols="55" rows="4" name="prashanje">    </textarea></td></tr>
                   <tr><td></td><td >' . recaptcha_get_html($publickey) . '<button name="btn" value="submit">Enter</button></td></tr>
                   </form></table>
                 </div>';

这是验证码:

if (isset($_POST['btn'])) {
    $name = mysql_real_escape_string(strip_tags($_POST['name']));
    $prashanje = mysql_real_escape_string(strip_tags($_POST['prashanje']));
    $date = time();

    # the response from reCAPTCHA
    $resp = null;
    # the error code from reCAPTCHA, if any
    $error = null;

    # was there a reCAPTCHA response?
    if ($_POST["recaptcha_response_field"]) {
        $resp = recaptcha_check_answer($privatekey, $_SERVER["REMOTE_ADDR"], $_POST["recaptcha_challenge_field"], $_POST["recaptcha_response_field"]);

        if ($resp->is_valid) {
            $query = "INSERT INTO prashanja VALUES(NULL,'$name','$prashanje','','$date')";
            if (!mysql_query($query))
                echo 's... happens';
            else
                echo 'cool';
        } else {
            # set the error code so that we can display it
            $error = $resp->error;
        }
    }
}

这些细分受众群在同一页面上。第一个段生成表单,第二个段检查是否按下了正确的按钮,初始化变量,然后检查重新计算并执行一些操作。我收到错误“Undefined index:recaptcha_response_field”。我怀疑如果验证是在与发送变量的表单相同的页面上完成的,则recaptcha将不起作用。我的怀疑是否正确,如果我将验证码移动到另一个文件会更好吗?

2 个答案:

答案 0 :(得分:3)

如果您在同一页面上进行验证,则此功能正常。 您正在访问变量以进行检查:

if ($_POST["recaptcha_response_field"]) {

最有可能导致错误,应该是

if (isset($_POST["recaptcha_response_field"])) {

答案 1 :(得分:1)

移动     形成 外面的标签     表 标签。我不知道为什么,但它有效。