그누보드5 운영시에 DB 업그레이드시 로그인이 안되는 문제 해결 방법
페이지 정보

본문
그누보드5 운영시에 시스템 업그레이드로 인해 DB 버전이 올라가면서 발생하는 문제 해결 방법
## mysql password 함수의 변화
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
## 그누보드 5.5 에서 적용 방법
1. mysql old_password 함수를 사용하는 php 함수를 하나 생성한다.
// mysql old_password
function sql_old_password($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
// 그래서, 하위 호환을 위해서 old_password() 함수가 있다.
$row = sql_fetch(" select old_password('$value') as pass ");
return $row['pass'];
}
2. 해당 php 함수를 사용하도록 수정
config.php 파일 안의 192행쯤에 있는 아래 설정을
```
define('G5_STRING_ENCRYPT_FUNCTION', 'create_hash');
```
다음과 같이 수정한다.
```
define('G5_STRING_ENCRYPT_FUNCTION', 'sql_old_password');
```
이때 함수명은 위에서 만든 php 함수명이다.
## 유의사항
디비 업그레이드 후, 로그인 하기 전에 위 소스를 수정해야 한다.
기본값인 create_hash 상태에서 로그인을 시도하게 되면,
비번이 맞을 경우, 디비의 mb_password 값을 hash 로 바꿔 버린다.
## mysql password 함수의 변화
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
## 그누보드 5.5 에서 적용 방법
1. mysql old_password 함수를 사용하는 php 함수를 하나 생성한다.
// mysql old_password
function sql_old_password($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
// 그래서, 하위 호환을 위해서 old_password() 함수가 있다.
$row = sql_fetch(" select old_password('$value') as pass ");
return $row['pass'];
}
2. 해당 php 함수를 사용하도록 수정
config.php 파일 안의 192행쯤에 있는 아래 설정을
```
define('G5_STRING_ENCRYPT_FUNCTION', 'create_hash');
```
다음과 같이 수정한다.
```
define('G5_STRING_ENCRYPT_FUNCTION', 'sql_old_password');
```
이때 함수명은 위에서 만든 php 함수명이다.
## 유의사항
디비 업그레이드 후, 로그인 하기 전에 위 소스를 수정해야 한다.
기본값인 create_hash 상태에서 로그인을 시도하게 되면,
비번이 맞을 경우, 디비의 mb_password 값을 hash 로 바꿔 버린다.
추천0
댓글목록
등록된 댓글이 없습니다.