$is_admin 변수가 로그인체크 페이지에서 불안정합니다. 왜그럴까요?

$is_admin 변수가 로그인체크 페이지에서 불안정합니다. 왜그럴까요?

QA

$is_admin 변수가 로그인체크 페이지에서 불안정합니다. 왜그럴까요?

답변 1

본문

$is_admin 변수가 참으로 나왔다가 거짓으로 나왔다가 불안정하네요.

대체로 참인데, 가끔 거짓으로 나옵니다.

관련글: https://sir.kr/qa/503746

 

테스트는 로컬 라라곤에서 아래 코드로 /bbs/login_check.php 맨 하단 위치에서 진행했습니다.

https://github.com/gnuboard/gnuboard5/blob/4eba618a829e2065d7cd85235300355323b210e0/bbs/login_check.php#L166

 


global $is_admin;
var_dump($is_admin);
if ($is_admin) {
    echo '관리자';
    //goto_url(G5_ADMIN_URL);
} else {
    echo '회원';
    //goto_url($link);
}

최고관리자로 로그인 시 항상 '관리자'로 찍혀야 하는데, 가끔 '회원'으로 찍힙니다.

이 질문에 댓글 쓰기 :

답변 1

로그인 페이지는 $member['mb_id'] 가 아닌 $mb['mb_id'] 로 사용합니다.

$is_admin 변수는 $member['mb_id'] 값을 기반으로 체크합니다.

그래서 $is_admin으로 하면 안 되고 이런 식으로 해야 합니다.

if (is_admin($mb['mb_id'])) {

 

참고 

/common.php

 

// 회원, 비회원 구분
$is_member = $is_guest = false;
$is_admin = '';
if (isset($member['mb_id']) && $member['mb_id']) {
    $is_member = true;
    $is_admin = is_admin($member['mb_id']);
    $member['mb_dir'] = substr($member['mb_id'],0,2);
} else {
    $is_guest = true;
    $member['mb_id'] = '';
    $member['mb_level'] = 1; // 비회원의 경우 회원레벨을 가장 낮게 설정
}

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