-2

我曾尝试将其用作 if 语句,但它不起作用。它说不正确的传球和错误的东西。怎么了?

$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";
}
4

2 回答 2

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值是否实际上已设置。

于 2012-09-24T01:35:06.670 回答
1

这不能是有效代码,您}的 s 多于{s。

假设有一些关于该代码的条件导致大括号不匹配,您的

echo "incorrect pass";

发生'if ($submit) { condition, and therefor will run *regardless* of the value of$submit` 的右大括号之后。

于 2012-09-24T01:36:29.307 回答