제목 | 로그인 부분을 작성하였는데 이상한 점이 있어서 올리게 되었어요 | ||
---|---|---|---|
글쓴이 | 정수리 | 작성시각 | 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'); } } }
|