0

我试过查看其他答案,但我遇到的只是人们将他们的比较运算符放在错误的方向上。不是这里的情况。下面是我的代码的简化版本。此代码不会返回我认为应该的错误。

我正在尝试确定一个字符串(在本例中为密码)是否满足最小长度要求。但是,无论我输入什么字符串,它都不会给出应有的错误。作为调试的一种方式,我尝试在 strlen() 中输入一个简单的字符串“hi”,并告诉它如果小于则给出错误6 个字节长。然而,即使这样也不会像我想要的那样返回。

我觉得我错过了一些愚蠢的东西。帮助?

<?php
$Email = mysql_real_escape_string(Trim($_POST['Email']));
$Password = "hi";

// check fields
$error = false;
if(empty($Email)) $error = true;
if(strlen(utf8_decode($Password)) < 6) $error = true;

if($error != false) header("Location: index.php?error=true");


// store user to database
$success = insert_dbUser(new User($Email, $Password));

// redirect to success page 
if ($success) {
    header("Location: index.php?success=true");
}
else header("Location: index.php?error=existinguser");
?>
4

2 回答 2

3

确保在发送位置标头后结束脚本:

if ($error) {
    header("Location: index.php?error=true");
    exit();
}
于 2013-01-13T02:59:41.280 回答
0

我会检查你的“if”语句的语法,因为其中两个既没有冒号“:”也没有大括号“{ //do stuff }”。else 需要将要发生的任何事情都放在大括号中。我可能弄错了,但是你所拥有的不寻常的语法对我来说很突出。以及需要退出语句。

于 2013-06-05T13:35:28.363 回答