0

我有一个简单的表格

<form id="myform" action="formprocess.php" method="POST">
username:<input type="text" name="username">
password:<input type="password" name="password">
<?php if($_COOKIE("login-attempt")>"4"){
require_once "recaptchalib.php";
echo recaptcha_get_html($publickey, $error);
}?>
<input type="submit" value="Sign in" id="signIn" name="signIn""/>
</form>

问题是验证码(recaptcha_response_field)也发布到formprocess.php页面,我希望这个验证码(recaptcha_response_field)值应该在这里检查是否正确,而不是用户名和密码的值应该提交给formprocess.php重新加载此页面并显示错误。我怎样才能做到这一点。?

4

1 回答 1

0

好吧,在我看来,最简单的做法是在开头验证 CAPTCHA formprocess.php,如果它不起作用die('CAPTCHA failed),则运行脚本。IE:

function verifyCAPTCHA(){
  //function that verifies the captcha...
}
if (!verifyCaptcha()){
  die('CAPTCHA Failed')
}
//the rest of your formprocess.php

但是,如果您坚持formprocess.php与 CAPTCHA 验证分开,那么您可以改为将 formaction属性更改为action='captchaValidate.php'.

captchaValidate.php然后看起来像:

function verifyCAPTCHA(){
  //function that verifies the captcha...
}
if (!verifyCaptcha()){
  die('CAPTCHA Failed')
}else{
  require('formprocess.php')
}

当您说您想在“此处”验证 CAPTCHA 时,也许您的意思是说您想发送一个 AJAX 请求,您应该在其中查看https://developers.google.com/recaptcha/docs /display和他们的 AJAX API。您可以通过这种方式动态调用我提出的任一解决方案。另请查看如何对我的 reCaptcha ajax api 进行发布请求?

于 2012-07-05T14:47:40.770 回答