질문일 수도 있고 버그일 수도 있는 질문입니다.

질문일 수도 있고 버그일 수도 있는 질문입니다.

QA

질문일 수도 있고 버그일 수도 있는 질문입니다.

본문


else if ($w == 'u')
{
    $mb = get_member($mb_id);
    if (! (isset($mb['mb_id']) && $mb['mb_id']))
        alert('존재하지 않는 회원자료입니다.');
    if ($is_admin != 'super' && $mb['mb_level'] >= $member['mb_level'])
        alert('자신보다 권한이 높거나 같은 회원은 수정할 수 없습니다.');
    if ($is_admin !== 'super' && is_admin($mb['mb_id']) === 'super' ) {
        alert('최고관리자의 비밀번호를 수정할수 없습니다.');
    }
    if ($mb_id === $member['mb_id'] && $_POST['mb_level'] != $mb['mb_level'])
        alert($mb['mb_id'].' : 로그인 중인 관리자 레벨은 수정 할 수 없습니다.');
    // 닉네임중복체크
    $sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_nick = '{$mb_nick}' and mb_id <> '$mb_id' ";
    $row = sql_fetch($sql);
    if (isset($row['mb_id']) && $row['mb_id'])
        alert('이미 존재하는 닉네임입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']);
    // 이메일중복체크
    $sql = " select mb_id, mb_name, mb_nick, mb_email from {$g5['member_table']} where mb_email = '{$mb_email}' and mb_id <> '$mb_id' ";
    $row = sql_fetch($sql);
    if (isset($row['mb_id']) && $row['mb_id'])
        alert('이미 존재하는 이메일입니다.\\nID : '.$row['mb_id'].'\\n이름 : '.$row['mb_name'].'\\n닉네임 : '.$row['mb_nick'].'\\n메일 : '.$row['mb_email']);
    if ($mb_password)
        $sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' ";
    else
        $sql_password = "";
    if (isset($passive_certify) && $passive_certify)
        $sql_certify = " , mb_email_certify = '".G5_TIME_YMDHIS."' ";
    else
        $sql_certify = "";
    $sql = " update {$g5['member_table']}
                set {$sql_common}
                     {$sql_password}
                     {$sql_certify}
                where mb_id = '{$mb_id}' ";
    sql_query($sql);
}

 

https://github.com/gnuboard/gnuboard5/blob/master/adm/member_form_update.php

파일에서 회원정보를 관리자가 수정 할 때에 경우 ($w == 'u') 내용 입니다.

 

155번 줄 보시면 아래와 같이 되어있는데

 


    if ($mb_password)
        $sql_password = " , mb_password = '".get_encrypt_string($mb_password)."' ";
    else
        $sql_password = "";
    if (isset($passive_certify) && $passive_certify)
        $sql_certify = " , mb_email_certify = '".G5_TIME_YMDHIS."' ";
    else
        $sql_certify = "";

 

위에 부분을 보면

if ($mb_password)

if (isset($passive_certify) && $passive_certify)

위 와 같은 경우 isset이 되어 있지 않고

PHP8 관련하여 많이 수정 된 것으로 알고 있는데

if (isset($_POST['mb_password']) && $_POST['mb_password'])

이러한 형태로 수정되어야 하는게 아닌가 하는 생각이 들어서 글을 올립니다.

 

다른 이유가 있어서 저렇게 하신건지 아니면

수정해야 맞는건데 안하시는건지 궁금합니다.

 

이 질문에 댓글 쓰기 :

답변 1

버그라 생각되는 부분은 사소한 부분이라도 버그 게시판에 전부 제보하시면 됩니다.

https://sir.kr/cm_bug?sca=%EA%B7%B8%EB%88%84%EB%B3%B4%EB%93%9C5

답변을 작성하시기 전에 로그인 해주세요.
전체 12
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT