2011-08-28 7 views
0

약간 문제가 있습니다. (allow_moderator_tickets를PHP IF 문에 대한 도움말 - 또는 기타

  • 을 사용자가 관리자 (forum_admin) 아닌 경우 그들은 티켓 (사용자 ID)의 소유자가 아닌,하지만 사회자는 티켓을 볼 수 있습니다 :이 같은 반응해야 IF 문을 생성 할) AND 사용자는 사회자 (forum_moderator) 인 경우 티켓을 볼 수 있어야합니다.

PHP if 문을 사용하여 어떻게 얻을 수 있습니까?

//If user is not allowed to view. 
    if($userdata['forum_admin']==0 && $ticketDetails['userid']!=$userdata['id'] || $sdata['allow_moderator_ticket']==0 && $userdata['forum_moderator']==1) 
     redirect("?i=a"); 
+0

예, 관리자는 상관없이 허용되어야한다. –

+1

너무 복잡하다고 생각합니다. 사용자가 티켓을 하나씩 보도록 허용하는 조건을 취하고, OR을 통해 연결하고 마지막으로'!()'를 통해 연결하십시오. (물론 연산자 우선 순위 문제를 피하기 위해 몇 가지 하위 조건으로 구성된'()'조건을 사용해야합니다.) – Nobody

답변

3
if (isAdmin || (allowModerators && isModerator) || userID == ticketUser) allowToSeeTicket 

if (! (isAdmin || (allowModerators && isModerator) || userID == ticketUser)) notAllowToSeeTicket 
+0

감사! 이 작동합니다. –

0

당신이 혼합 및 또는 사업자 수 없습니다

지금까지 나는이 있습니다. 서로가 서로를 망칠거야. 당신이 더를 arithmetics

에서 그것을 읽을 수 있도록 코드를 리팩토링 좋을 것 같은, 괄호를 사용하여 그룹화 표현을해야

$admin = ($userdata['forum_admin']); 
$owner = ($ticketDetails['userid'] == $userdata['id']); 
$moder = ($sdata['allow_moderator_ticket'] == 1 AND $userdata['forum_moderator']==1) 

if !($admin OR $moder OR $owner) { 
    redirect("?i=a"); 
}