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)
이 이미 정해져 있는 걸 보면요.
저걸 사용하시려면 해당 파일에 지정되어 있는 테이블명을 전부 수정하셔야 하겠네요.
답변을 작성하시기 전에 로그인 해주세요.