2010년도에 사용하던 sql 문법중 지금 쓸 수 없는것도 있나요? 채택완료
KIM163
9년 전
조회 7,221
시핑하다보니 괜찮은 프로그램들을 찾게되는데 DB 필드에 값 전달이 안되는 현상이
있더라구요. 상세한 분석을 부탁드리는건 아니구요. 있다 없다 정도의 답변만 얻어도 좋습니다.ㅎ
제가 어떻게 해볼 수 있는게 아니라..
</p><p>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;
}
}</p><p>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
답변을 작성하려면 로그인이 필요합니다.
로그인
테이블도'mia_users' 로 생성되어 있습니다. 계정생성 부분 외에는
모두 정상적으로 출력이 되는걸 보면 설치와 설정부분에 미흡한 점이
있었는지 다시 검토해보겠습니다. 말씀 감사합니다~