| 제목 | [검토부탁] 간단한 로그인 MVC | ||
|---|---|---|---|
| 글쓴이 | 배강민 | 작성시각 | 2010/04/06 17:10:16 |
|
|
|||
|
수고들 많으십니다..
<?php
/*
|---------------------------------------------------------------
| member.php
|---------------------------------------------------------------
|
| * 회원 관련 콘트롤
| * Date : 2010.04
| * Author : BaeKangMin
| * functions : login (form), _loginOk (session write), logout (session destroy),
|
*/
class Member extends Controller {
function Member()
{
parent::Controller();
//html 캐쉬 생성
//$this->output->cache(5); //5분단위...
//모델 호출 (기본)
$this->load->model('member_model');
//url, form helper
$this->load->helper(array('url', 'form'));
//form validation, session
$this->load->library(array('form_validation', 'session'));
//rtnUrl
if(!@$this->uri->segment(3))
{
$this->rtnUrl = '';
} else {
$this->rtnUrl = rawurldecode(base64_decode(@$this->uri->segment(3)));
}
}
function login()
{
//로그인한 상태면
if( $this->session->userdata('user_id') != NULL )
{
redirect('');
//로그인하지 않은 상태면
} else {
$this->_loginOk();
}
}
//private
function _loginOk()
{
//rules
$this->form_validation->set_rules('loginId', '아이디', 'trim|required|xss_clean|alpha_numeric');
$this->form_validation->set_rules('loginPass', '비밀번호', 'trim|required|xss_clean');
//request
$reqLoginId = $this->input->post('loginId');
$reqLoginPass = $this->input->post('loginPass');
//폼검증 성공이면
if ($this->form_validation->run() == TRUE)
{
$loginRst = $this->member_model->loginOK($reqLoginId, $reqLoginPass);
if($loginRst == TRUE)
{
redirect($this->rtnUrl);
} else {
$data['errorMsg'] = "아이디/비밀번호를 다시 확인하시기 바랍니다.";
$this->layout->view('member_login_view', $data);
}
//폼검증 실패거나 기본..
} else {
$this->layout->view('member_login_view');
}
}
function logout()
{
//session destroy
$this->session->sess_destroy();
redirect($this->rtnUrl);
}
function index()
{
redirect('member/login');
}
}
/* End of file member.php */
/* Location: ./system/application/controllers/member.php */
Model 입니다. (member_model.php)
<?php
/*
|---------------------------------------------------------------
| member_model.php
|---------------------------------------------------------------
|
| * 회원 관련 모델
| * Date : 2010.04
| * Author : BaeKangMin
|
*/
class Member_model extends Model {
function Member_model()
{
parent::Model();
//DB 수동 연결
$this->oracleMobile3 = $this->load->database('oracleMobile3', TRUE);
}
function loginOk($id, $pwd)
{
$this->oracleMobile3->trans_start();
$qry = " SELECT user_id, user_name FROM ksky_user WHERE user_id = ? AND user_pwd = ? ";
$rst = $this->oracleMobile3->query($qry, array($id, $pwd));
$this->oracleMobile3->trans_complete();
//$data = $rst->result();
$data = $rst->row(); //한줄이면 되니까...
$this->oracleMobile3->close();
if( isset($data->USER_ID) )
{
//session write
$this->session->set_userdata(array('user_id' => $data->USER_ID, 'user_name' => $data->USER_NAME));
return TRUE;
}
return FALSE;
}
}
/* End of file member_model.php */
/* Location: ./system/application/models/member_model.php */
View입니다. (member_login_view.php)
<?php
//폼검증 에러 표출
if(validation_errors() !== "")
{
?>
<script language="JavaScript" type="text/javascript">
//<!--
alert("<?=str_replace("\n", "\\n", strip_tags(validation_errors()))?>");
//-->
</script>
<?
}
//로그인 실패 에러
if(isset($errorMsg) && $errorMsg !== "")
{
?>
<script language="JavaScript" type="text/javascript">
//<!--
alert("<?=$errorMsg?>");
//-->
</script>
<?
}
?>
<?php
$attributes_loginForm = array('class' => 'loginForm', 'id' => 'loginForm');
?>
<script language="JavaScript" type="text/javascript">
//<!--
$(document).ready(function() {
$("#loginForm :input:visible:enabled:first").focus(); //입력 가능한 첫 input에..
//$("#loginId").focus(); // fixed
});
//-->
</script>
<?php echo form_open('member/login', $attributes_loginForm); ?>
<ul>
<fieldset>
<li>
<input type = "text" name = "loginId" value = "<?php echo set_value('loginId'); ?>" id = "loginId" maxlength = "20" size = "50" />
</li>
<li>
<input type = "password" name = "loginPass" value = "" id = "loginPass" maxlength = "20" size = "50" />
</li>
</fieldset>
<li>
<input type = "image" name = "loginSubmit" src = "<?=ROOT?>/images/btn/login.gif" />
</li>
</ul>
</form>
바쁘시겠지만.. 시간 되시는 분들 계시면 한번 검토 후 조언 부탁드려봅니다.허접해서 쑥스럽네요...ㅋ 감사합니다. 수고하십시오. |
|||
| 다음글 | null, 공백 체크 방법? (2) | ||
| 이전글 | [초보]모바일 이그나이터 (4) | ||
|
변종원(웅파)
/
2010/04/06 17:27:21 /
추천
0
네. 잘 만드셨네요. ^^
|
|
헛발이
/
2010/04/06 17:31:11 /
추천
0
직접 만들어도 되지만.. 저 같은 경우는 tank_auth라이브러리를 사용 하고 있습니다.
다운로드는 http://www.konyukhov.com/soft/tank_auth/ 여기서 가능하고요.. 다운 받은 후에 application에 덮어치기 하면 사용가능하고요... 저 같은 경우는 여기 소스를 보면서 ci를 시작하게 되었답니다... 참고 하세요~ |
|
엥?무새
/
2015/06/25 04:52:36 /
추천
0
5년전 거라 걱정이 좀 되지만.. 참고해서 로그인 기능 만들었어요. 감사합니다~
|