PHP버전과 old password관계 질문
본문
영카트 버전업그레이드에 맞추기위해 호스팅서버의 PHP 버전 5.2에서 5.5설치된 서버로 DB를 이번 하였습니다.
이후 admin이하 모든 멤버의 로그인이 안됩니다.
호스팅측의 답변은..
신규 입주서버의 경우, mysql 의 old password 호환성이 제거된 상태입니다.
대부분의 최근 배포본은 old password 호환을 제공하고 있으나, 그렇지 못한경우, 로그인이 안되실 수 있습니다.
현재 쓰시는 솔루션 배포처에서 관련 검색을 해보셨으면 합니다.
위와 같습니다.
이전에 위와같은경우의 팁이 제공된 게시물등 관련자료가 있는지 조언 바랍니다.
혹시 아래 common.lib.php 부분중 일부 수정으로 해결이 가능한지도 보아주셨으면 합니다.
lib/common.lib.php에서
function sql_password($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
// mysql 4.1x 이상 버젼에서도 password() 함수의 결과가 16bytes가 되어서
// 41바이트의 기존 비밀번호 때문에 로그인 오류가 나는 경우에는 아래 코멘트를 풀어주세요
// 마루호스팅에서 테스트 했습니다.
sql_query("set old_passwords=0");
$row = sql_fetch(" select password('$value') as pass ");
return $row[pass];
}
답변 2
$row = sql_fetch(" select old_password('$value') as pass ");
16바이트입니다.