我有一个简单的表格
<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 else重新加载此页面并显示错误。我怎么能这样做??
答案 0 :(得分:0)
嗯,我眼中最容易做的就是在formprocess.php
开头验证验证码,如果它不起作用die('CAPTCHA failed)
,否则运行脚本。即:
function verifyCAPTCHA(){
//function that verifies the captcha...
}
if (!verifyCaptcha()){
die('CAPTCHA Failed')
}
//the rest of your formprocess.php
但是,如果您坚持从CAPTCHA验证中分离formprocess.php
,那么您可以将action
表单格式更改为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。您可以通过这种方式动态调用我建议的解决方案之一。另请查看How to do a post request for my reCaptcha ajax api?