'서버 이전시 로그인 문제'에 해당되는 글 1건

  1. 2013.12.02 서버 이전시 로그인 문제 - 그누보드로 만든 사이트
반응형

그누보드로 만든 사이트에서 서버 이전시 로그인 문제 해결방법 입니다.
그누보드 기준 버전 4.0이하와 4.1 이상에서의 비밀번호 값에 대한 연구.

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

 

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

 

 

 

아래 그림은 FTP로 로그인 했을 때 수정해야 하는 해당 파일 경로입니다.

 

 

[ 문제해결 방법 ]
아래 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바이트로 바꾼 후 위에 수정한 것들을 다시 원상복귀 해 놓는게 좋습니다.

첨부파일에도 올려놨습니다.

서버 이전시 로그인 문제.txt


사이트에 회원이 없다면 별 상관이 없겠으나 로그인을 해야 하는 회원이 많다면 필요한 부분입니다.
어쨌든 이렇게 하면 정상 적으로 로그인이 되며 이 설명은 그누보드로 만든 사이트 기준입니다.

 

반응형
Posted by 푸바오놀이터
,