CI 코드

제목 CI의 사용자 인증 소스파일
글쓴이 corean 작성시각 2010/09/12 05:01:07
댓글 : 3 추천 : 0 스크랩 : 1 조회수 : 20579   RSS
전체 소스 파일입니다.


http://codeigniter-kr.org/lecture/view/116/page/1
첨부파일 ci_user_authentication.zip (404.3 KB)
 다음글 SELECT() 사용 시 문제점 (2)
 이전글 CI 1.7.2 한글 언어팩 1.1 (1)

댓글

변종원(웅파) / 2010/09/13 12:50:34 / 추천 0
초보분들 공부하시는데 도움이 되겠네요.
감사합니다.
꾸숑 / 2013/02/06 02:16:36 / 추천 0
corean//감사합니다
.
자료 있는줄 모르고 아래 주소에서 문서 다운받아서 인쇄하고 분석하고 작업해볼라고 하던차에 게시물을 봤네요
http://codeigniter-kr.org/lecture/view/116/page/1
몇시간 거저 먹었네요 ㅎㅎㅎ

복사 붙여 넣기 하면 실력이 늘지 않더라고요... 분석하고 직접 해봐야 내것이 되는거서 같더군요..
그래서 어렵고 복잡한 소스보다 간단 명료 한 소스를 통해서 공부하는게 효과적일것 같더라고요  제 기준으로....

다만 아쉬운건 최신 버전이 아니라는것인데.... 제가 버젼업 해야 겠지요 ㅎㅎ

꾸숑 / 2013/02/06 23:23:16 / 추천 0

아래는 수정된 내용입니다. 오류가 몇군데 있어서 좀 고생했네요..
그래서 더욱 공부가 되었고 잊어버리지 않을것 같습니다.

도움 주신분은 웅파님 불의화상님 이십니다.
그리고 저도 오류 서너군데 찾아 냈고요^^


controllers/account.php
<?php

class Account extends Controller
{
function Account()
{
parent::Controller();
$this->load->library(array('form_validation', 'session'));
$this->load->helper(array('url', 'form'));
$this->load->Model('account_model');
$this->_salt = '12345678987654321';
}
function index()
{
if ($this->account_model->logged_in() == true)
{
$this->dashboard(true);
}
else
{
$this->load->view('account/details');
}
}
function dashboard($condition = false)
{
if ($condition == true or $this->account_model->logged_in() == TRUE)
{
$this->load->view('account/dashboard');
}
else
{
$this->load->view('account/details');
}
}
function login()
{
$this->form_validation->set_rules('username', '아이디', 'xss_clean|required');
$this->form_validation->set_rules('password', '패스워드', 'xss_clean|required|min_length[4]|max_length[12]|callback_password_check');
$this->username = $this->input->post('username');
$this->password = sha1($this->_salt . $this->input->post('password'));
if ($this->form_validation->run() == false)
{
$this->load->view('account/login');
}
else
{
$this->account_model->login();
$data['message'] = '로그인 성공 ' . anchor('account/dashboard', '접속');
$this->load->view('account/success', $data);
}
}
/*///////////////////////////////////////////////////////////
function username_check($username)
{
$this->db->where('username', $this->username);
$query = $this->db->get('users');
$result = $query->row_array();
if ($result['username'] == $this->username)
{
return true;
}
if ($query->num_rows() == 0)
{
$this->form_validation->set_message('username_check', '존재하지 않는 아이디 입니다.');
return false;
}
}
/////////////////////////////////////////////////////////////
*/
function password_check($password)
{
$this->db->where('username', $this->username);
$query = $this->db->get('users');
$result = $query->row_array();
//echo $result['password'];
//echo $this->password;
//exit;
if ($result['password'] == $this->password)
{
return true;
}
else
{
$this->form_validation->set_message('password_check', '패스워드가 틀렸습니다.');
return false;
}
}
function register()
{
$this->form_validation->set_rules('username', '아이디', 'xss_clean|required|callback_username_exists');
$this->form_validation->set_rules('email', '이메일', 'xss_clean|required|valid_email|callback_email_exists');
$this->form_validation->set_rules('password', '패스워드', 'xss_clean|required|min_length[4]|max_length[12]|matches[password_conf]');
$this->form_validation->set_rules('password_conf', '패스워드(확인)', 'xss_clean|required|matches[password]|sha1');
if ($this->form_validation->run() == false)
{
$this->load->view('account/register');
}
else
{
$data['username'] = $this->input->post('username');
$data['email'] = $this->input->post('email');
$data['password'] = sha1($this->_salt . $this->input->post('password'));
if ($this->account_model->create($data) === true)
{
$data['message'] = "회원가입성공 " . anchor('account/login', 'here') . ".";
$this->load->view('account/success', $data);
}
else
{
$data['error'] = "회원가입에 실패했습니다.";
$this->load->view('account/error', $data);
}
}
}
function username_exists($username)
{
$query = $this->db->get_where('users', array('username' => $username));
if ($query->num_rows() > 0)
{
$this->form_validation->set_message('username_exists', '입력하신 %s 는 존재하는 아이디 입니다. .');
return false;
}
$query->free_result();
return true;
}
function email_exists($email)
{
$query = $this->db->get_where('users', array('email' => $email));
if ($query->num_rows() > 0)
{
$this->form_validation->set_message('email_exists', '입력하신 %s 은 존재하는 이메일 입니다.');
return false;
}
$query->free_result();
return true;
}
function logout()
{
$this->session->sess_destroy();
$this->load->view('account/logout');
}
}

?>