[g5] mysql버전 업데이트로 인한 패스워스 변경하기
페이지 정보
본문
mysql버전 업데이트로 인한 로그인이 안되는 경우 하위버전으로 로그인시 새롭게 자동으로 패스워드를 업데이트 해줌으로써 처리합니다.
때문에 하위버전의 패스워드 방식을 읽을 수 있는 함수가 필요합니다.
lib/common.lib.php
1500라인
function sql_old_password($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
$row = sql_fetch(" select old_password('$value') as pass ");
return $row['pass'];
}
bbs/login_check.php
14라인
// 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다.
// 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
$login_check=0;
if (!$mb['mb_id']) {
$login_check = 1;
} else if (sql_password($mb_password) !== $mb['mb_password']) {
// 옛날 버젼의 패스워드일지도 모르니까 한번 더 확인합니다.
if (sql_old_password($mb_password) != $mb['mb_password']) {
$login_check = 1;
} else {
// 옛날 패스워드를 새로운 패스워드로 바꿉니다.
$sql = " update {$g5['member_table']} set mb_password='".sql_password($mb_password)."' where mb_id = '{$mb['mb_id']}' ";
sql_query($sql);
}
}
if (!$mb['mb_id'] || (sql_password($mb_password) != $mb['mb_password'])) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}
댓글목록
등록된 댓글이 없습니다.