php 논리연산자 질문드립니다.

php 논리연산자 질문드립니다.

QA

php 논리연산자 질문드립니다.

답변 2

본문

특정 페이지를 특정 회원과 총 관리자만 접근가능하게 하려는데요.

아래처럼 해줘봤는데 test01 회원이 접근이 되지 않더라구요.

||  이 연산자가 논리식 중에서 하나라도 참이면 참을 반환함. 이라고 봤는데. 왜 안될까요;

 


if (!$is_admin || $config[cf_4] != 'test01') {
    alert_close("접근 권한이 없습니다.");
}

 

이렇게 하면 당연히 되구요.

 


if ($config[cf_4] != 'test01') {
    alert_close("접근 권한이 없습니다.");
}

 

 

 

 

 

이 질문에 댓글 쓰기 :

답변 2

관리자만 허용

if($is_admin)

 

특정회원만 허용

if($member['mb_id'] == 'test01')

 

관리자와 특정회원만 허용

if($is_admin || $member['mb_id'] == 'test01')

 

추가로 설명드리자면 현재 $config[cf_4] 여분필드에 test01을 넣었는데

이게 만약 추가되거나 아이디가 바뀌게되면 if문을 전부  수정해야하기 때문에

$is_member , $is_admin 과 비슷한 방식으로 특정 구분할 수 있는 변수를 만들어서

추가하는 것이 도움됩니다.

예를들어

if($is_admin || $is_sub_admin)

이런식으로 $is_sub_admin 의 변수를 생성해서 해당 아이디를 추가해놓는다면

회원이 바뀌어도 계속 적용할 수 있습니다.

$config[cf_4] 에 등록된 값(회원아이디) 일때만 허용하고자 할때는

if ($config[cf_4] != $member['mb_id']) {

    alert_close("접근 권한이 없습니다.");

    exit;

}

 

관리자와 $config[cf_4] 에 등록된 값(회원아이디) 일때만 허용하고자 할때는

if (!($is_admin || $config[cf_4] == $member['mb_id'])) {    

    alert_close("접근 권한이 없습니다.");

    exit;

}

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 36
© SIRSOFT
현재 페이지 제일 처음으로