mysql 4.0x 이하 회원 비번 정보를 로그인시 4.1x 이상 의 password로 변경 > 그누보드5 팁자료실

그누보드5 팁자료실

mysql 4.0x 이하 회원 비번 정보를 로그인시 4.1x 이상 의 password로 변경 정보

mysql 4.0x 이하 회원 비번 정보를 로그인시 4.1x 이상 의 password로 변경

본문

* mysql 4.0x 이하 버전에서는 password() sql명령이 16바이트로 처리되어 저장되며 4.1x 이상 버전은 41바이트로 처리된다. mysql 4.0x 이하에서 운영중인 홈페이지의 회원을  4.1x 이상 버전으로 이전 했을때 비밀번호 값이 틀리기 때문에 로그인을 할수 없는 점을 수정하기 위한 작업입니다. 간단하게 sql_old_password() php 함수를 생성 하였고 로그인 체크 부분에 조건으로 old_password와 일치한다면 새로운 41바이트 password()로 변경되도록 처리 하였다.

사용목적: cafe 24등의 mysql 4.0x 이하를 쓰는 업체에서 회원정보를 mysql  4.1x 이상으로 이전 후 로그인이 안되는 현상 수정

./lib/common.lib.php 약 1246줄

function sql_password($value)
{
    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
    $row = sql_fetch(" select password('$value') as pass ");
    return $row['pass'];
}

윗부분에 다음 소스 추가


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 약 18줄

alert('가입된 회원아이디가 아니거나 패스워드가 틀립니다.\\n패스워드는 대소문자를 구분합니다.');

를 다음 소스로 수정


if(sql_old_password($mb_password) == $mb['mb_password']){ // old 비번과 같다면 자동으로 업데이트
	$new_password = sql_password($mb_password);
	sql_query("update {$g4['member_table']} set mb_password = '$new_password ' where mb_id = '{$mb['mb_id']}'");
}else{
	alert('가입된 회원아이디가 아니거나 패스워드가 틀립니다.\\n패스워드는 대소문자를 구분합니다.');
}
추천
1

댓글 8개

정말 절실하게 필요했던 부분인데...  ㅠㅠ 
너무 감사드립니다 ~
덕분에 잘 해결하고 돌아갑니다 ~~

첨에 소스 그대로 넣으니 계속 안되서... 다른 소스랑 비교해보며 고쳐봤는데요..
위에 소스로 해서 안되시는 분들은 아래 소스 참고하세요 ^^

login_check.php 페이지에 수정되는 부분를

if(sql_old_password($mb_password) == $mb['mb_password']){ // old 비번과 같다면 자동으로 업데이트
  $new_password = sql_password($mb_password);
    sql_query("update {$g5['member_table']} set mb_password = '$new_password ' where mb_id = '{$mb['mb_id']}'");
 }else{
    alert('가입된 회원아이디가 아니거나 패스워드가 틀립니다.\\n패스워드는 대소문자를 구분합니다.');
 }


요렇게 수정하면 될꺼예요 ~~
'$new_password '    >>>  '$new_password'  요렇게 변경해야 하겠어요 ~~

공백이 있어서 첨에 로그인할때는 그 비번으로 로그인이 되는데 이후에는 또 로그인 안되는 상황이 발생하더라고요 ~
제가 디자이너라 개발쪽은 전혀 모르는데 공부 정말 많이 됐어요 ~ ㅎㅎ

여러모로 감사드립니다 ^^
전체 2,411 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT