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

論理が間違っています。OR ではなく AND を意味していた可能性があります。$_SESSION['account']は常に 1 つの値しか持てないため、常に と異なるか、 と異なりaccount1ますaccount2

したがって、コードは次のようになります

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

あなたの条件は間違っています:)あなたがaccount2を持っていると仮定すると、最初の比較は真であり、あなたはリダイレクトされます。条件をAND(&&)と組み合わせる必要があります。

于 2012-04-12T13:12:48.753 に答える
2

あなたが必要

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

($_SESSION['account'] != "account2") を確認したいと思います。2番目の状態でそれらを逆にしたようです。

于 2012-04-12T13:10:52.143 に答える