0

如果我没有帐户 1 或没有帐户 2,我想被重定向。问题是,即使我有 account1,它也会重定向我:

if(($_SESSION['account'] != "account1") || ($_SESSION['account'] != "account2")){
    header("location:/home");
    exit();
}

当我没有包含 OR 时,它可以正常工作并且当我有 account1 时不会重定向我:

if($_SESSION['account'] != "account1"){
    header("location:/home");
    exit();
}

但如果他们碰巧拥有account2,我也需要它不重定向。

我究竟做错了什么?

4

4 回答 4

5

逻辑错误;您可能指的是 AND 而不是 OR。$_SESSION['account']在任何给定时间只能有一个值,所以它总是不同于account1OR 不同于account2.

所以代码应该读

if(($_SESSION['account'] != "account1") && ($_SESSION['account'] != "account2")){
    header("location:/home");
    exit();
}
于 2012-04-12T13:11:13.200 回答
2

你需要

if(($_SESSION['account'] != "account1") && ($_SESSION['account'] != "account2")){
    header("location:/home");
    exit();
}
于 2012-04-12T13:11:48.180 回答
2

你的条件是错误的 :) 假设你有一个 account2,第一个比较是真的,你会被重定向。您需要将条件与 AND (&&) 结合起来。

于 2012-04-12T13:12:48.753 回答
-1

我相信你想检查 ($_SESSION['account'] != "account2")。在第二种情况下,您似乎将它们颠倒了。

于 2012-04-12T13:10:52.143 回答