프리랜서 웹수리천사

반응형



로그인이 안되요!

디비 이전 후 로그인이 안될때가 가끔있다.

1.대부분 세션 디렉토리의 퍼미션 에러로 세션생성이 안되는 경우 ==> chmod 707 퍼미션으로 해결

2.mysql 버전 상이로 인한 패스워드 불일치  ==> 이건 방법이 없음, 회원들에게 패스워드 재설정 요청, 약간의 스킬이 필요함!


위의 경우가 아닌데 로그인이 안되는 경우 가 있다.

set old_passwords=0 (0:new, 1:old)  버전상이로 로그인이 안될때.. 해결책.. 0으로 셋팅함



세션폴더도 이상이 없고, mysql 버전 문제도 아닌데 로그인이 안되는 경우..
mysql old_passwords=0 으로 설정된 서버가 있다.
SHOW VARIABLES LIKE 'old_passwords'
[Edit ]  [ Create PHP Code ] [ Refresh ]



+ Options
Variable_nameValue
old_passwords

ON


자체 서버로 설정을 변경 할 수 있다면 
mysql> set old_passwords=1; 로 설정 변경하면 되고 
호스팅서버라면.. 이런 서버는 없겠지만.. 아래의 코드를 해당 패스워드 함수에  추가하여 해결 가능하다.

이렇게 사용하는 이유는 위 문제2를 해결하는 방법이기도 하다, 하지만 이렇게 사용하면 안된다!! 
보안수준을 올리기 위한 방법을 거꾸로 거스르는 경우이다.


그누보드4
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"); // 디비 셋팅이 1=old 로 셋팅되어 있음, 강제 0으로 변경필요

    $row = sql_fetch(" select password('$value') as pass "); 
    return $row[pass]; 
}



그누5 common.lib.php
function sql_password($value)
{
    // mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
    // mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
sql_query("set old_passwords=0"); // 디비 셋팅이 1=old 로 셋팅되어 있음, 강제 0으로 변경필요
    $row = sql_fetch(" select password('$value') as pass ");

    return $row['pass'];
}



참고로 패스워드를 잊어버렸을 경우

update member_table set mb_password = password('111111') where mb_id = 'admin'"; 

또는 값을 필드에 바로 입력

111111 해쉬값  ==>  *FD571203974BA9AFE270FE62151AE967ECA5E0AA

반응형
신일 리모컨 이동식 에어컨 SMA-D850SI [4개월]프롬바이오 관절연골엔 보스웰리아(850mg*30정*8박스), 단품, 단품