Captcha打破我的形式?

时间:2009-07-15 20:31:44

标签: php forms captcha

我已经在我的表单中实现了验证码,但它似乎没有验证。我在下面列出了代码,看看我的布局中是否有任何明显的内容以及如何修改它。该帖子已删除公钥和私钥。

感谢。

<h1>Contact</h1>
<form action="index.php" method="post">
<input type="hidden" name="required_fields" value="name, email, message" />
<input type="hidden" name="email_fields" value="email" />
<input type="hidden" name="html_template" value="form.tpl.html" />
<input type="hidden" name="mail_template" value="mail.tpl.txt" />
<input type="hidden" name="thanks" value="/thanks.php" />
<!-- <input type="hidden" name="error_page" value="./docu/error.html" /> -->
<table border="0" cellpadding="3" cellspacing="0">
<tr>
  <td><p>Full Name <span>*</span></p></td>
  <td>&nbsp;&nbsp;&nbsp;</td>
  <td><input type="text" name="name" value="" size="40" /></td>
</tr>
<tr valign="bottom">
  <td><p>Phone</p></td>
  <td>&nbsp;&nbsp;&nbsp;</td>
  <td><input type="text" name="phone" value="" size="40" />
  </td>
</tr>
<tr valign="bottom">
  <td><p>Email <span>*</span></p></td>
  <td>&nbsp;&nbsp;&nbsp;</td>
  <td><input type="text" name="email" value="" size="40" />
  </td>
</tr>
<tr valign="top">
  <td><p>Message <span>*</span></p></td>
  <td>&nbsp;&nbsp;&nbsp;</td>
  <td><textarea name="message" cols="30" rows="10"></textarea></td>
</tr>
<tr valign="top">
  <td>&nbsp;</td>
  <td>&nbsp;&nbsp;&nbsp;</td>
  <td><p>

<?php

require_once('recaptchalib.php');

// Get a key from http://recaptcha.net/api/getkey
$publickey = "";
$privatekey = "";

# 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) {
            echo "You got it!";
    } else {
            # set the error code so that we can display it
            $error = $resp->error;
    }
}
echo recaptcha_get_html($publickey, $error);
?>  
      <input type="submit" name="send" value="Send" />
      <br />
      <span>*</span> = required field.</p></td>
</tr>
</table>
</form>

1 个答案:

答案 0 :(得分:1)

我不能说你的验证码有什么问题,因为我不知道这个验证码实现的具体细节。

您的表单已重置,因为您未填写已发布数据的字段。也许你不打算。

首先确保您的表单在没有验证码的情况下按预期工作,以确保问题出现在验证码中。