2012-04-12 2 views
0

계정이 없거나 account2가없는 경우 리디렉션되고 싶습니다.또는 문이 제대로 작동하지 않습니다.

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

: 나는 계정 1이있을 때

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

이 제대로 작동하고 저를 리디렉션하지 않습니다 내가 OR을 포함하지 않는 경우 : 문제는 내가 계정 1 경우에도 나를 리디렉션된다 우연히 account2가 있으면 리디렉션하지 않아야합니다.

내가 뭘 잘못하고 있니?

답변

5

논리가 잘못되었습니다. 당신은 아마도 OR 대신 AND를 의미했을 것입니다. $_SESSION['account']은 주어진 시간에 하나의 값만 가질 수 있으므로 항상 account1 또는 account2이 아닌 다른 값이됩니다.

그래서 코드는 당신이 당신의 상태가 잘못 : 당신이 account2을 가지고 있다고 가정한다

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

완벽합니다. 고맙습니다! – Jason

-1

($ _SESSION [ 'account']! = "account2")를 확인하고 싶습니다. 두 번째 조건에서 반대가 된 것 같습니다.

2

읽어야 첫 번째 비교는 사실, 당신은 리디렉션. AND (& &)와 조건을 결합해야합니다.

+0

신난다, 당신의 대답에 대해 감사합니다 – Jason

2

필요

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

Congrates! 처음 upvote –

+0

대단히 감사합니다 :) – Rob

관련 문제