마스터포유(Master4U)
Monday, 17 of January
 

로그인 Category
☞그누보드 서버이전시 로그인 문제
관리자  2015-04-24 08:25:33 Hit:1527
링크 #1: http://ithoolic.tistory.com/16

--------------------------------------------------
http://ithoolic.tistory.com/16   Date : 2013.12.02 14:00
--------------------------------------------------

서버 이전시 로그인 문제
그누보드 기준 버전 4.0이하와 4.1 이상에서의 비밀번호 값에 대한 연구.

MySQL password 함수 4.0이하 : 16바이트
MySQL password 함수 4.1이상 : 40바이트

여기서 생기는 충돌문제: 과거 16바이트 이하에서 로그인이 가능하던 것이 서버 이전 후 바이트값이 다르기 때문에 로그인이 되지 않습니다.

[ 문제해결 방법 ]
아래 3개의 파일에 대한 함수 수정 및 첨가로 가능합니다.
간단하게 정리 했으니 따라 해 보세요.
=================
lib/common.lib.php
bbs/login_check.php
bbs/register_form.php
=================

common.lib.php
---------------------------------------
function sql_old_password($value)
{
    $row = sql_fetch(" select old_password('$value') as pass ");
    return $row[pass];
}
---------------------------------------

login_check.php의 15번째 줄 바꿔주기.
---------------------------------------
if (!$mb[mb_id]) {
alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
} else { //id가 있는경우
if ( (sql_password($mb_password) != $mb[mb_password]) && (sql_old_password($mb_password) != $mb[mb_password]) ) {
     alert("가입된 회원이 아니거나 패스워드가 틀립니다.\\n\\n패스워드는 대소문자를 구분합니다.");
}
}
---------------------------------------

register_form.php의 66-67번째 줄 바꿔주기.
---------------------------------------
if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]) && !($member[mb_password] == sql_old_password($_POST[mb_password]) && $_POST[mb_password]))
         alert("패스워드가 틀립니다.");
---------------------------------------

회원이 모두 비밀번호를 40바이트로 바꾼 후 위에 수정한 것들을 다시 원상복귀 해 놓는게 좋습니다.
사이트에 회원이 없다면 별 상관이 없겠으나 로그인을 해야 하는 회원이 많다면 필요한 부분입니다.
어쨌든 이렇게 하면 정상 적으로 로그인이 되며 이 설명은 그누보드로 만든 사이트 기준입니다.

<자료출처 : http://ithoolic.tistory.com/16 >
본문인쇄본문메일발송
나보드3 → 그누보드4 게시판 및 회원 변환
그누보드 관리자비번 초기화
Copyright 1999-2019 Zeroboard / skin by ChanBi