function login_password_check($mb, $pass, $hash)

function login_password_check($mb, $pass, $hash)

QA

function login_password_check($mb, $pass, $hash)

답변 2

본문

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

이렇게 패스워드 체크하면 됩니다.

 


$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 "패스워드 틀림";
}
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 123,684
© SIRSOFT
현재 페이지 제일 처음으로