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

もう1つのことは、値が実際に設定されているisset()かどうかを常に確認するために使用します。$_POST

于 2012-09-24T01:35:06.670 に答える
1

これは有効なコードではありません。s}よりも{s の方が多いです。

中括弧の不一致を説明するそのコードに関するいくつかの条件があると仮定すると、

echo "incorrect pass";

'if ($submit) { $submit`の閉じ括弧のに発生します。condition, and therefor will run *regardless* of the value of

于 2012-09-24T01:36:29.307 に答える