PHP 计数器不断自我重置
PHP counter keeps resetting itself
所以基本上我有一个表单可以将信息提交到我的网站,然后我可以稍后批准信息进入我的网站或删除它。
我最近在网站上添加了一个 recaptcha 机器人检查器,这样我就可以避免垃圾邮件发送者等,但问题是我在同一个文件中有流程和提交页面的布局(submitinfo.php)
recaptcha 进程会自动终止页面,因为验证码不正确(因为他们没有机会输入它)所以我认为与其终止页面,不如让它显示一条消息说验证码不正确,但是如上所述,当用户第一次打开页面时,他们还没有机会输入验证码,因此即使他们还没有输入任何内容,也会显示该消息。
我想如果我添加一个计数器,它只在计数器大于 0 时显示一条消息,并在每次加载页面时添加 +1。我这样做了,但是即使在多次输入错误的验证码后消息也没有显示,我认为这是因为每次我按下提交按钮时计数器都会重置。这是代码,所以你们可以看到我实际做了什么:
$count
settype($count,"integer");
require_once('recaptchalib.php');
$privatekey = "My Private Captcha Key goes here";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
// the stuff above is just the code from the captcha
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
if($count>0){ $errormessage = "block"; //this displays the error message if the counter is greater then 0
}
$count++;
} else{
//here it submits the info
在检查验证码之前,请检查您是否有 $_POST
数据。它应该是这样的:
<?php
if ($_POST) {
// check captcha
if ($captcha_valid) {
// persist submitted form data
// redirect on success
} else {
$error = 'captcha';
}
}
?>
<!-- display form -->
所以基本上我有一个表单可以将信息提交到我的网站,然后我可以稍后批准信息进入我的网站或删除它。
我最近在网站上添加了一个 recaptcha 机器人检查器,这样我就可以避免垃圾邮件发送者等,但问题是我在同一个文件中有流程和提交页面的布局(submitinfo.php)
recaptcha 进程会自动终止页面,因为验证码不正确(因为他们没有机会输入它)所以我认为与其终止页面,不如让它显示一条消息说验证码不正确,但是如上所述,当用户第一次打开页面时,他们还没有机会输入验证码,因此即使他们还没有输入任何内容,也会显示该消息。
我想如果我添加一个计数器,它只在计数器大于 0 时显示一条消息,并在每次加载页面时添加 +1。我这样做了,但是即使在多次输入错误的验证码后消息也没有显示,我认为这是因为每次我按下提交按钮时计数器都会重置。这是代码,所以你们可以看到我实际做了什么:
$count
settype($count,"integer");
require_once('recaptchalib.php');
$privatekey = "My Private Captcha Key goes here";
$resp = recaptcha_check_answer ($privatekey,
$_SERVER["REMOTE_ADDR"],
$_POST["recaptcha_challenge_field"],
$_POST["recaptcha_response_field"]);
// the stuff above is just the code from the captcha
if (!$resp->is_valid) {
// What happens when the CAPTCHA was entered incorrectly
if($count>0){ $errormessage = "block"; //this displays the error message if the counter is greater then 0
}
$count++;
} else{
//here it submits the info
在检查验证码之前,请检查您是否有 $_POST
数据。它应该是这样的:
<?php
if ($_POST) {
// check captcha
if ($captcha_valid) {
// persist submitted form data
// redirect on success
} else {
$error = 'captcha';
}
}
?>
<!-- display form -->