或声明无法正常运作

时间:2012-04-12 13:09:02

标签: php

如果我没有帐号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 个答案:

答案 0 :(得分:5)

逻辑错误;你可能意味着AND而不是OR。 $_SESSION['account']在任何给定时间只能有一个值,因此它总是与account1不同或不同于account2

所以代码应该是

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

答案 1 :(得分:2)

你需要

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

答案 2 :(得分:2)

你的情况有误:)假设你有一个帐号2,第一次比较是真的,你被重定向。您需要将条件与AND(&&)相结合。

答案 3 :(得分:-1)

我相信你要检查($ _SESSION ['account']!=“account2”)。你似乎在第二种情况下让它们逆转。