질문일 수도 있고 버그일 수도 있는 질문입니다.
본문
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
답변을 작성하시기 전에 로그인 해주세요.