테스트 사이트 - 개발 중인 베타 버전입니다

PHP버전과 old password관계 질문 채택완료

아침이슬™ 10년 전 조회 4,865

영카트 버전업그레이드에 맞추기위해 호스팅서버의 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개

채택된 답변
+20 포인트
진서기
10년 전

    $row = sql_fetch(" select old_password('$value') as pass ");


old_password 는 mysql 함수입니다.

위처럼 수정해서 되는지 테스트해보세요
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아침이슬™
10년 전
덕분에 해결되었습니다.
다시한번 감사의말씀 드립니다.
이렇게되면 이후의 모든 가입자도 현행같이 16바이트 패스워드 체계에 맞추어지는건지요?
아니면 기존은 16바이트, 이후는 41바이트 패스워드 체계가 되는건지요?

댓글을 작성하려면 로그인이 필요합니다.

진서기
10년 전

16바이트입니다.

 

 

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

아침이슬™
10년 전
거듭 감사드립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인