이것은 어떤 에러인가요?
http://sir.kr/qa/121292">http://sir.kr/qa/121292
먼저, 게시글을 보고 변경을 했는데요.
이유는 mysql 버전에 따라 암호코드가 다르기 때문에 동일하게 하려고 했는데요.
증상, 일반회원은 아무런 변화가 없이 로그인이 되는데 최고관리자만 아래와 같이 에러가 나옵니다.
Fatal error: Call to undefined function crypt_xdigit() in 생략/http/gnu4/bbs/login_check.php on line 29
글고
mysql 버전에 따라 암호코드가 다른경우 로그인 해결법
common.lib.php
$row = sql_fetch(" select old_password('$value') as pass ");
이것으로 로그인 문제를 해결을 하잖아요?
그리고 16바이트를 41바이트로 변경을 하거 위해
bbs/login_check.php
//회원로그인에 관련된 수정내용
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);
}
이렇게 하여 현재 암호화에 맞는것으로 변경을 하잖아요.
그런데 모두 41바이트로 변경이 된 것을 확인하고 common.lib.php 수정한것을 원래 그누보드 원본으로 바꾸었습니다.
그랬더니 가입된 회원이 아니라면서 로그인이 안되네요.
왜 이런 문제가 발생을 하는거죠?
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인
네이버 지식인에 검색을 해도 보이지가 않네요.