我有一个带有3 OR的IF语句,但它没有运行。
$package = mysqli_real_escape_string($con, $_GET['package']);
if ($package != 500 || $package != 1100 || $package != 2400 ) {
$error = "Invalid Package.";
}
它总是回声“无效的包裹”。 $ package是500,1100,2400还是其他任何东西。
我可能做错了什么?
答案 0 :(得分:6)
经典错误: - )
您希望&&
不是||
$package = mysqli_real_escape_string($con, $_GET['package']);
if ($package != 500 && $package != 1100 && $package != 2400 ) {
$error = "Invalid Package.";
}
我认为你的有效套餐是500,1100和2400 ......哼......大小???
答案 1 :(得分:1)
你想要做的是创建一组错误答案,以防将来出现1654号码:
$package = mysqli_real_escape_string($con, $_GET['package']);
$valid_packages = array(500, 1100, 2400);
if (!in_array($package, $valid_packages)) {
$error = "Invalid Package.";
}
如果$package
不是500,1100,2400那么它就是无效的。
将它作为一个数组,可以在以后轻松修改(更多/更少的包),并且更容易连接到外部数据库。
答案 2 :(得分:0)
如果你想要其中一个是真的,请删除(!):
$package = mysqli_real_escape_string($con, $_GET['package']);
if ($package == 500 || $package == 1100 || $package == 2400 ) {
$error = "Invalid Package.";
}
答案 3 :(得分:0)
如果您正在寻找其中一个是真的,那么代码
$package = mysqli_real_escape_string($con, $_GET['package']);
if ($package == 500 || $package == 1100 || $package == 2400 ) {
$error = "It has one of them.";
}