큭 간만에 LAMP 작업 ㅎㅎ
같은 mysql 5.x 인거 확인하고 덤프떠서 넘겼더니 로그인이 안되더라구요
신규 서버 버전: 5.1.45
현재 서버 버전: 5.0.77
그래서 db를 확인해봐도 패스워드 길이값도 맞게 들어왔있어서 암호화된 값을 찍어봤습니다.
# 신규
*89C6B530AA78695E257E55D63C00A6EC9AD3E977
1111
# 현재
45271aba0b765d95
1111
길이 값이 달라서 안되는 상황이였구요 다음과 같이 처리 했습니다.
소스는 그누보드쪽을 참고 했습니다.
function sql_old_password($value)
{
$row = sql_fetch(" select old_password('$value') as pass ");
return $row[pass];
}
function sql_password($value)
{
// mysql 4.0x 이하 버전에서는 password() 함수의 결과가 16bytes
// mysql 4.1x 이상 버전에서는 password() 함수의 결과가 41bytes
$row = sql_fetch(" select password('$value') as pass ");
return $row[pass];
}
로그인시 넘어온값을 받아서 패스워드 비교해보고 옛날 패스워드일경우 신규 패스워드로 업데이트 시켜버립니다.
업데이트된 패스워드면 비교해서 Y/N 처리 해 버립니다.
if (sql_old_password($mb_password) == $mb[mb_password]) {
$sql = " update member_table set mb_password='" . sql_password($mb_password) . "' where mb_id='$mb_id' ";
sql_query($sql);
} elseif (!$mb[mb_id] || (sql_password($mb_password) != $mb[mb_password])) {
alert("땡! 틀렸음");
}
'Databases' 카테고리의 다른 글
SQLGate 접속 정보를 백업 및 복원 (0) | 2014.01.28 |
---|---|
phpmyadmin (PHP 4+ and MySQL 3+) (0) | 2014.01.03 |
MySQL의 암시 적 변환 (0) | 2013.04.11 |
not like (0) | 2013.04.08 |
CHARACTER , COLLATE 확인 및 변경 (0) | 2013.04.07 |