관리자 환경설정 비번설정 문의드립니다.
본문
관리자페이지에서 환경설정 수정시 관리자 패스워드를 입력해야 수정 가능하도록 하려고합니다.
그래서 환경설정 파일인 adm/config_form.php 에 아래 소스를 추가하였습니다.
<tr><th scope="row"><label for="cf_title">관리자 패스워드<strong class="sound_only">필수</strong></label></th>
<td colspan="3"><input class='ed' type='password' name='admin_password' itemname="관리자 패스워드" required></td></tr>
그리고 config_form_update.php 상단에 아래 소스를 추가하였습니다.
if ($member[mb_password] != sql_password($_POST['admin_password'])) {
alert("패스워드가 다릅니다.");
}
그누보드 4에서는 위 소스를 적용하면 잘 되는데 그누보드 최신버전에서는 비번을 맞게 입력했는데 "패스워드가 다릅니다" 라고 뜨는데 해결 방법이 있는지 문의드립니다.
답변 2
참조하세요
// 로그인 패스워드 체크
function login_password_check($mb, $pass, $hash)
{
global $g5;
$mb_id = isset($mb['mb_id']) ? $mb['mb_id'] : '';
if(!$mb_id)
return false;
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($hash) === G5_MYSQL_PASSWORD_LENGTH || strlen($hash) === 16)) {
if( sql_password($pass) === $hash ){
if( ! isset($mb['mb_password2']) ){
$sql = "ALTER TABLE `{$g5['member_table']}` ADD `mb_password2` varchar(255) NOT NULL default '' AFTER `mb_password`";
sql_query($sql);
}
$new_password = create_hash($pass);
$sql = " update {$g5['member_table']} set mb_password = '$new_password', mb_password2 = '$hash' where mb_id = '$mb_id' ";
sql_query($sql);
return true;
}
}
return check_password($pass, $hash);
}
감사합니다. 보내주신 답변 힌트를 얻어서 해결했습니다.
답변을 작성하시기 전에 로그인 해주세요.