为什么功能会混淆PHP?

时间:2016-05-01 01:53:49

标签: javascript php function

我有这个功能:

function errorWindow($field, $toFix)
{
    echo "<script language='javascript'>";
    echo "alert('We are sorry but your request could not be logged because " . $field .
         " is not a valid response.  Please ". $toFix ." and resubmit your request')</script> <br />";

}

我试图从另一个验证用户输入的函数调用它。我试图在函数中从这一点开始调用它:

if (!$email || mb_strlen($email = trim($email)) == 0)
    $this->setError('email', 'required field');
else {
    if (!is_email($email))
        $this->setError('email', 'invalid email');
        $this->errorWindow('scriptjet@toscors2.com', 'please enter valid e-mail address');
    else
        if (mb_strlen($email) > 120)
            $this->setError('email', 'too long! 120 characters');
}

继续获得预期的其他错误。无论我将调用放在函数的哪个位置,它都会扰乱调用下方的行。

我可以使用这个确切的功能并通过自己调用它自己的文件并且它可以正常工作。我在这个问题上差不多2天了,所以我开始看到代码在屏幕上运行了。

感谢您提供任何帮助。

1 个答案:

答案 0 :(得分:1)

就像@PeeHaa所说,这与if / else陈述的安排和缺乏括号有关。以下代码添加了一些大括号以确保在is_email($email)返回false时执行电子邮件错误和错误窗口语句。

if (!is_email($email)) {
    $this->setError('email', 'invalid email');
    $this->errorWindow('scriptjet@toscors2.com', 'please enter valid e-mail address');
}
else {
    if (mb_strlen($email) > 120)
        $this->setError('email', 'too long! 120 characters');
}