function login_password_check($mb, $pass, $hash)
본문
function login_password_check은 패스워드가 맞는지 확인하는 함수 아닌가요?
아무리 살펴봐도 패스워드를 체크하는 부분이 없고,
업데이트하는 이유가 뭔가요?
혹시 sql_password($pass)함수에서 체크하는 건가요?
// 로그인 패스워드 체크
function login_password_check($mb, $pass, $hash)
{
global $g5;
$mb_id = isset($mb['mb_id']) ? $mb['mb_id'] : '';
if(!$mb_id)
return false;
if(G5_STRING_ENCRYPT_FUNCTION === 'create_hash' && (strlen($hash) === G5_MYSQL_PASSWORD_LENGTH || strlen($hash) === 16)) {
if( sql_password($pass) === $hash ){
if( ! isset($mb['mb_password2']) ){
$sql = "ALTER TABLE `{$g5['member_table']}` ADD `mb_password2` varchar(255) NOT NULL default '' AFTER `mb_password`";
sql_query($sql);
}
$new_password = create_hash($pass);
$sql = " update {$g5['member_table']} set mb_password = '$new_password', mb_password2 = '$hash' where mb_id = '$mb_id' ";
sql_query($sql);
return true;
}
}
return check_password($pass, $hash);
}
답변 2
if( sql_password($pass) === $hash ){ 이부분이 체크하는 값인것 같습니다.
이렇게 패스워드 체크하면 됩니다.
$sql = "select * from g54_member where mb_email ='$email'";
$mb = sql_fetch($sql);
if( login_password_check($mb, $password, $mb['mb_password']) ){
echo "패스워드 맞음";
} else {
echo "패스워드 틀림";
}