我在网页中使用的表单存在问题。
它允许recaptcha但它也发送电子邮件而不验证recaptcha框中的字段。这个表单使用的是Ajax和PHP。
我接下来粘贴了代码:
<br> <br> <div id="fields">
<form action="javascript:alert('success!');">
<label>Nombre</label><INPUT class="textbox" type="text" name="name" value=""><br />
<label>eMail</label><INPUT class="textbox" type="text" name="email" value=""><br />
<label>Asunto</label><INPUT class="textbox" type="text" name="subject" value=""><br />
<label>Mensaje</label><TEXTAREA class="textbox" NAME="message" ROWS="5" COLS="25"></TEXTAREA><br />
<?php
require_once('recaptchalib.php');
// Get a key from http://recaptcha.net/api/getkey
$publickey = "6LekPAQAAAAAAFoAJRfRtd9vmlzA9m-********";
$privatekey = "6LekPAQAAAAAAFqNcNsrnZba0-ZMg-********";
# 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 "Bien escrito!";
} else {
# set the error code so that we can display it
$error = $resp->error;
}
}
echo recaptcha_get_html($publickey, $error);
?>
<br/>
<label> </label><INPUT class="button" type="submit" name="submit" value="Enviar">
</form>
</div>
</fieldset>
非常感谢。
大卫。
答案 0 :(得分:1)
问题是您需要在再次显示表单之前检查reCAPTCHA。在生成任何HTML之前,PHP代码将高于表单的第一行,因此可以将用户重定向到感谢页面。