mysql 4.0 -> mysql 5.x 버전으로 이전시 password 문제
mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
password() 함수의 차이로 mysql 4.1 이상에서는 old_password() 함수를 지원합니다.
현재 g5 최신버전에 맞게 수정했습니다.
로그인 성공시 db의 비밀번호가 16바이트이면 41바이트로 변경됩니다.
/bbs/login_check.php 파일의 17라인 쯤
[code]
if (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}
[/code]
부분을 아래와 같이 수정하시면 됩니다.
[code]
function sql_password2($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
$row = sql_fetch(" select old_password('$value') as pass ");
return $row['pass'];
}
// 비밀번호 비교
function check_old_password($pass, $hash)
{
$password = sql_password2($pass);
return ($password === $hash);
}
if (!$mb['mb_id'] || (!check_password($mb_password, $mb['mb_password']) && !check_old_password($mb_password, $mb['mb_password']))) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}
if(check_old_password($mb_password, $mb['mb_password'])) {
$sql= " update {$g5['member_table']} set mb_password = password('$mb_password') where mb_id = '{$mb['mb_id']}' ";
sql_query($sql);
}
[/code]
mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
password() 함수의 차이로 mysql 4.1 이상에서는 old_password() 함수를 지원합니다.
현재 g5 최신버전에 맞게 수정했습니다.
로그인 성공시 db의 비밀번호가 16바이트이면 41바이트로 변경됩니다.
/bbs/login_check.php 파일의 17라인 쯤
[code]
if (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}
[/code]
부분을 아래와 같이 수정하시면 됩니다.
[code]
function sql_password2($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
$row = sql_fetch(" select old_password('$value') as pass ");
return $row['pass'];
}
// 비밀번호 비교
function check_old_password($pass, $hash)
{
$password = sql_password2($pass);
return ($password === $hash);
}
if (!$mb['mb_id'] || (!check_password($mb_password, $mb['mb_password']) && !check_old_password($mb_password, $mb['mb_password']))) {
alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}
if(check_old_password($mb_password, $mb['mb_password'])) {
$sql= " update {$g5['member_table']} set mb_password = password('$mb_password') where mb_id = '{$mb['mb_id']}' ";
sql_query($sql);
}
[/code]
댓글 6개
9년 전
감사합니다.
돼지코구뇽
9년 전
감사합니다
8년 전
좋은 자료 감사합니다.
7년 전
서버이전 후 로그인 관련
4년 전
로그인 패스워드변환
2년 전
ㄷㄷㄷ
게시판 목록
그누보드5 팁자료실
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 |
|---|---|---|---|---|
| 공지 | 3년 전 | 4429 | ||
| 24 | 12년 전 | 7371 | ||
| 23 | 12년 전 | 5225 | ||
| 22 |
JMoon
|
12년 전 | 6248 | |
| 21 |
오늘도망했다
|
12년 전 | 13482 | |
| 20 | 12년 전 | 4322 | ||
| 19 | 12년 전 | 8047 | ||
| 18 | 12년 전 | 6513 | ||
| 17 | 12년 전 | 5414 | ||
| 16 | 12년 전 | 6132 | ||
| 15 | 12년 전 | 5614 | ||
| 14 | 12년 전 | 9231 | ||
| 13 | 12년 전 | 8202 | ||
| 12 | 12년 전 | 4951 | ||
| 11 | 12년 전 | 7269 | ||
| 10 |
|
12년 전 | 8958 | |
| 9 | 12년 전 | 7553 | ||
| 8 | 12년 전 | 8128 | ||
| 7 | 12년 전 | 7327 | ||
| 6 | 12년 전 | 7457 | ||
| 5 | 12년 전 | 7375 | ||
| 4 | 12년 전 | 7464 | ||
| 3 | 12년 전 | 6960 | ||
| 2 | 12년 전 | 5805 | ||
| 1 | 12년 전 | 12129 |
댓글 작성
댓글을 작성하시려면 로그인이 필요합니다.
로그인하기