| 제목 | 로그인 부분을 작성하였는데 이상한 점이 있어서 올리게 되었어요 | ||
|---|---|---|---|
| 글쓴이 | 정수리 | 작성시각 | 2016/06/22 08:56:28 |
|
|
|||
|
1%라도 해본 질문 vs. 1%도 안해본 질문, 여러분은 어떤 질문에 손이 가십니까?
로그인 페이지를 만든 후 로그인을 해보았습니다 일단 흐름은 이렇습니다 메인페이지에서 로그인을 클릭하면 로그인페이지로 넘어온후 로그인페이지에서 아이디 비밀번호를 입력하면 인증 후 메인페이지로 이동합니다 로그인이 성공하면 메인페이지의 메뉴들이 바뀌게됩니다
그런데 최초로 로그인을 할 경우 아이이와 비밀번호를 입력하면 메인페이지로 넘어가는데 로그인이 되지않는 상태로 넘어갑니다 다시 로그인페이지로 넘어가 로그인을 하면 잘 됩니다 메인페이지의 메뉴들도 로그인한 상태의 메뉴들로 바뀌구요 혹시나 해서 다시 로그아웃 하고 로그인하니 정상적으로 잘되더라구요... 다른 브라우저에서도 최초접속시 똑같은 현상이 나타나구요 그 이후로 로그인하면 잘 접속이 됩니다;; 아파치를 재시작한 후 로그인하면 똑같은 현상이 나타나구요;; 코드를 봐도 딱히 문제가 될것이 없는 것 같습니다;
메인 뷰페이지
<a href="/auth_c/authentication"><button>로그인</button>
Controller(로그인부분)
function authentication(){ //로그인 인증
$this->load->library('form_validation');
$this->form_validation->set_rules('id', '아이디', 'trim|required|min_length[3]|max_length[16]');
$this->form_validation->set_rules('pass', '비밀번호', 'trim|required|min_length[5]|max_length[16]');
if($this->form_validation->run()==TRUE){
$user=$this->Member_m->GetById(array('id'=>$this->input->post('id')));
if($this->input->post('id') == $user->ur_id&&password_verify($this->input->post('pass',true), $user->ur_ps)){
$loging=array('id'=>$user->ur_id, 'logind_in'=>true);
$this->session->set_userdata($loging, true);
$this->load->helper('url');
redirect('/jm_c');
}else{
$this->session->set_flashdata('message', '아이디 및 비밀번호를 확인해주세요.');
$this->load->helper('url');
redirect('/auth_c/authentication');
}
}else{
$this->load->view('member/login_v');
$this->load->view('footer');
}
}
로그인 뷰페이지
<?php
if($this->session->flashdata('message')){
?>
<script>
alert('<?=$this->session->flashdata('message')?>');
</script>
<?php
}
?>
<div align="center">
<form id="login" action="/auth_c/authentication" method="post" />
아이디: <input type="text" name="id" id="id" /><?php echo form_error('id');?>
비밀번호: <input type="password" name="pass" id="pass" /><?php echo form_error('pass');?>
<input type="submit" value="로그인" />
</form>
</div>
처음 메인에서 로그인을 클릭하면 controller의 authentication()로 이동하면 입력한것 것이 없기때문에 if문의 this->form->validation() 부분에서 false가 나와서 로그인뷰페이지로 이동한 후 아이디와 비밀번호를 입력하면 form validation의 규칙에따라 검사를 하고 규칙에 적합하면 this->form->validation() 부분에서 true가 나와 입력한 아이디와 password를 받아와 모델에서 가져온 값과 비교하여 결과적으로 로그인 또는 로그인 실패라는 메세지를 띄우는 건데... 왜 최초 로그인시에는 로그인이 되지않고 그 다음부터 로그인을 할때는 정상적으로 잘되는지 알고 싶네요 ㅜㅜ. 아직 많이 부족해서 그런지 일단 제가 봤을땐 코드에는 이상이 없는것 같습니다 ㅜㅜ |
|||
| 다음글 | 초보적인 질문하나 드립니다.ㅜㅜ (1) | ||
| 이전글 | 이벤트에대한 부분이 안보이는군요 (4) | ||
|
변종원(웅파)
/
2016/06/22 17:14:30 /
추천
0
false인 케이스를 먼저 기술해보세요
|
|
정수리
/
2016/06/23 08:46:55 /
추천
0
@웅파 답변 감사합니다 말씀하신대로 false인 케이스를 먼저 기술한 후 실행하였지만 똑같은 현상은 계속 발생하네요 원인을 알수가 없네요 ㅜㅜ
function authentication(){ //로그인 인증
$this->load->library('form_validation');
$this->form_validation->set_rules('id', '아이디', 'trim|required|min_length[3]|max_length[16]');
$this->form_validation->set_rules('pass', '비밀번호', 'trim|required|min_length[5]|max_length[16]');
if($this->form_validation->run() == FALSE){
$this->load->view('member/login_v');
$this->load->view('footer');
}else{
$user=$this->Member_m->GetById(array('id'=>$this->input->post('id')));
if($this->input->post('id') == $user->ur_id&&password_verify($this->input->post('pass',true), $user->ur_ps)){
$loging=array('id'=>$user->ur_id, 'logind_in'=>true);
$this->session->set_userdata($loging, true);
$this->load->helper('url');
redirect('/jm_c');
}else{
$this->session->set_flashdata('message', '아이디 및 비밀번호를 확인해주세요.');
$this->load->helper('url');
redirect('/auth_c/authentication');
}
}
}
|