在使用Securimage Captcha时,PHP似乎正在执行if和else

时间:2012-06-24 15:54:10

标签: php if-statement validation captcha

我正在尝试使用PHP验证码来验证网站上的联系表单,过去几天我遇到了一个砖墙,表格在FF,Chrome,Safari上运行良好但不是IE。我在这里搜索了很多帖子,但没有找到任何似乎可以解决我的问题,所以我希望你们中的一些专家可以帮我一把:)。事实上这只是在IE上让我感到困惑,因为我能想到的唯一问题就是会话变量,这似乎在ie中工作正常。

以下是验证联系表单发送的验证码的主要代码。我应该指出验证码代码是通过邮件发送的,因为我检查了标题和代码:var_dump($securimage->check($_POST['captcha_code']))在验证码正确或不正确时正确返回true和false,正如您所期望的那样。

主要问题似乎是如果正确输入验证码并且$securimage->check($_POST['captcha_code'])在IE上返回true,则正在执行语句if ($captcha_result == FALSE)但是也使用mail()函数发送电子邮件在相应的其他内。出于某种原因,$formSent = 2;似乎没有在mail()函数所在的else中运行。我尝试了if和else值的组合,allsorts没有运气。在我某处出现用户错误......

<?php
session_start();
include('securimage/securimage.php');


        if (isset($_POST['query_form'])) {


            if ($_POST['name'] == "Your name" || $_POST['email'] == "Your E-mail" || $_POST['message'] == "Message") {
                $formSent = 1; //display the notification bar wth error.
            } 
            else {

                //validate the captcha code now.
                $securimage = new Securimage();
                //var_dump($securimage->check($_POST['captcha_code']));
                $captcha_result = $securimage->check($_POST['captcha_code']);


                //ERROR - IE runs the first if and the mail function below for some reason.
                if ($captcha_result == FALSE) {
                    $formSent = 3; //display the notification bar wth captcha error.    
                }

                else if ($captcha_result !== FALSE) {               
                    $to = 'email';
                    $subject = 'subject';
                    $message = "Name: " .  $_POST['name'] . "\r\n" . "Email: " . $_POST['email'] . "\r\n" . "Phone: " . $_POST['phone'] . "\r\n" . "Message: " . $_POST['message'] ;
                    $headers = 'From: email' . "\r\n" .
                        'Reply-To: ' . $_POST['email'] . "\r\n";


                    mail($to, $subject, $message, $headers);
                    $formSent = 2; //display the notification bar with success.     

                }
            }

        }

?>

0 个答案:

没有答案