PHP计数器不断重置自己

时间:2015-01-10 08:10:49

标签: php forms counter reset recaptcha

所以基本上我有一个表单可以向我的网站提交信息,然后我可以稍后批准这些信息进入我的网站或删除它。

我最近在网站上添加了一个recaptcha bot检查程序,以便我可以避免垃圾邮件发送者等问题,但问题是我在同一个文件中提交了进程和提交页面的布局(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

1 个答案:

答案 0 :(得分:0)

在检查验证码之前,请检查您是否有$_POST数据。它应该是这样的:

<?php

if ($_POST) {
    // check captcha
    if ($captcha_valid) {
        // persist submitted form data
        // redirect on success
    } else {
        $error = 'captcha';
    }
}

?>
<!-- display form -->