2012-09-24 86 views
-2

我已经尝试使用此作为if语句,但它不会工作。它说错误的传球和错误的东西。哪里不对?PHP如果 - 语句不工作

$status = $_POST['status']; 
$server = $_POST['server']; 
$room = $_POST['room']; 
$password = $_POST['password']; 
$submit = $_POST['submit']; 
if ($submit) { 
    if ($server && $status && $room && $password) { 
    if ($password == "o") { 
     echo "Done"; 
    } else { 
     echo "all fields"; 
    } 
    } else { 
    } 
    echo "incorrect pass"; 
} else { 
    echo "submit"; 
} 
+0

$ _POST ['submit']的值是什么? – Duniyadnd

+0

您的逻辑错误 – Petah

+2

如果其中任何一个字段是数字并接受'0'作为值,那么您的逻辑将会出错。这将被转换为布尔型错误,并且无法通过“验证”。 –

回答

3

看到你想要做什么有点困难。

} else { 

} 
echo "incorrect pass"; 

这应该是括号为一体。这应该强调正确的代码格式和缩进的重要性。

,我认为还应该与其他else块切换,就像这样:

if ($server && $status && $room && $password) { 
    if ($password == "o") { 
     echo "Done"; 
    } else { 
     echo "incorrect pass"; 
    } 
} else { 
    echo "all fields"; 
} 

另一件事,我总是用isset()以检查$_POST值,实际上,设置。

+0

哈哈?不。现在它说DoneIncorrect通过 –

+1

哈哈?你甚至做过改变吗?有没有可能的方式可以说完成和不正确的传球。 – sachleen

+0

由您修复。谢谢!1111!1 –

1

这不能是有效的代码,你有更多的} s比{ s。

假设有关于代码,占撑不匹配的几个条件,你

echo "incorrect pass"; 

了“如果($提交){$ condition, and therefor will run *regardless* of the value of的submit`闭幕括号后发生