2010년도에 사용하던 sql 문법중 지금 쓸 수 없는것도 있나요?

2010년도에 사용하던 sql 문법중 지금 쓸 수 없는것도 있나요?

QA

2010년도에 사용하던 sql 문법중 지금 쓸 수 없는것도 있나요?

본문

시핑하다보니 괜찮은 프로그램들을 찾게되는데 DB 필드에 값 전달이 안되는 현상이

있더라구요. 상세한 분석을 부탁드리는건 아니구요. 있다 없다 정도의 답변만 얻어도 좋습니다.ㅎ

제가 어떻게 해볼 수 있는게 아니라..  

 


function userLogin($username, $password) {
        $clnUsername = $this->escapeForDb($username);
        $loginSQL = "SELECT id, full_name, username, salt, password, usergroup, show_offline_buddies FROM mia_users WHERE username={$clnUsername}";
        $user = $this->executeSQL($loginSQL);
        if (empty($user)) {
            return false;
        } else {    
            $dbSalt = $user->fields[3];
            $dbPassword = $user->fields[4];
        }
        
        //Try to recreate password for matching
        $inputHashedPassword = sha1($password . $dbSalt);
        //Test db password against the one entered on the form
        if ($inputHashedPassword !== $dbPassword) {
            return false;
        } else {
            //We have a match, now update/rerandomize the salt and password for added security
            $newPasswordArray = $this->buildPassword($password);
            $newSalt = $this->escapeForDb($newPasswordArray['salt']);
            $newPasswordHash = $this->escapeForDb($newPasswordArray['password']);
            $now = $this->escapeForDb(date("Y-m-d H:i:s"));
            $updateSQL = "UPDATE mia_users
                            SET password = {$newPasswordHash},
                            salt = {$newSalt},
                            heartbeat = {$now},
                            status = 'online',
                            password_reset_key = ''
                            WHERE username={$clnUsername}";
            if ($this->executeSQL($updateSQL)===false) {
                return false;
            }
        }
        $userid = $user->fields[0];
        $fullname = $user->fields[1];
        $username = $user->fields[2];
        $usergroup = $user->fields[5];
        $showoffline = $user->fields[6];
        $env = sha1($_SERVER['HTTP_USER_AGENT'].$_SERVER['REMOTE_ADDR']);
        $this->setupSession($userid, $fullname, $username, $usergroup, $env, $showoffline);
    }
    
    /**
    * Creates a new account
    * @param fullname
    * @param username
    * @param email
    * @param password
    */
    function createUserAccount($fullname, $username, $email, $password, $timeoffset) {
        $clnFullname = $this->escapeForDb($fullname);
        $clnUsername = $this->escapeForDb($username);
        $clnEmail = $this->escapeForDb($email);
        
        $passwordArray = $this->buildPassword($password);
        $clnSalt = $this->escapeForDb($passwordArray['salt']);
        $clnPasswordHash = $this->escapeForDb($passwordArray['password']);
        $now = $this->escapeForDb(date("Y-m-d H:i:s"));
        
        $userSQL = "INSERT INTO mia_users (full_name, username, password, salt, email, usergroup, time_offset, create_date)
             VALUES ({$clnFullname}, {$clnUsername}, {$clnPasswordHash}, {$clnSalt}, {$clnEmail}, 1, {$timeoffset}, {$now})";
        $result = $this->executeSQL($userSQL);
        if (!$result) {
            return false;
        }
    }
 

이 질문에 댓글 쓰기 :

답변 1

파일 내용 중 일부분인가 보네요.

그리고 저건 특정 사이트에서 사용하는 거군요. 

테이블명(mia_users)이 이미 정해져 있는 걸 보면요.

 

저걸 사용하시려면 해당 파일에 지정되어 있는 테이블명을 전부 수정하셔야 하겠네요. 

그부분을 설명에 빠트렸군요.ㅎ;
테이블도'mia_users' 로 생성되어 있습니다. 계정생성 부분 외에는
모두 정상적으로 출력이 되는걸 보면 설치와 설정부분에 미흡한 점이
있었는지 다시 검토해보겠습니다. 말씀 감사합니다~

답변을 작성하시기 전에 로그인 해주세요.
전체 78
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT