회원DB에 비밀번호 문의
본문
그누보드4로 제작된 사이트입니다.
어제 서버를 이전하고 로그인을 해보니 않됩니다.
그래서 회원가입을 해보니 회원 비번의 길이가 다르다른것을 확인했습니다.
이전하기전에 호스팅 서버 암호 길이 *A4A0B4F1CDCE7C48E5E6D515D70CCFED8C8D774B
(php 5.16)
이전한 가상 서버에는 43e9a4ab75570f5b
(PHP Version 5.2.17)
서버의 어떤것을 변경하면 될까요?
답변 3
현 서버의 mysql 버전이 이전 서버 mysql 버전보다 낮아서 그누보드의 암호화 방식이 바뀌었습니다.
mysql을 PHP 5.2.17에 맞는 mysql 최신 버전으로 교체해주시던지 아니면 그누보드에서 설정을 변경해주셔야 합니다.
그누보드5 5.0.33 이후 버전부터는 암호화 함수를 사용자가 지정할 수 있습니다.
config.php 파일의 G5_STRING_ENCRYPT_FUNCTION 상수 값을 sql_password 에서
md5 로 변경하시면 추가적인 수정없이 md5 로 사용할 수 있습니다.
그누보드4를 포함한 이전 버전이라면
bbs > login_check.php 을 수정해서 아래의 부분을 찾아서 아래와 같이 해주세요.
if (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}
을
if (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password] and sql_old_password($mb_password) != $mb[mb_password])) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
} else {
if (sql_old_password($mb_password) == $mb[mb_password]) {
$sql_password = " mb_password = '".sql_password($mb_password)."' ";
$sql = " update {$g4[member_table]}
set $sql_password
where mb_id = '$mb[mb_id]' ";
sql_query($sql);
}
}
로
수정해주세요.
이전대상의 mysql버전이 구섭보다 낮은경우는 디비에 저장된 비밀번호로 인증확인이 어렵습니다.
팝업등의 공지로 이전후 첫 방문한 회원이라면 비밀번호 찾기로 비번리셋을 하라고 권하는게 그나마의 방편이겠습니다.