제목 | session 연습중 !! 문제 발생!! | ||
---|---|---|---|
글쓴이 | 짱큰형 | 작성시각 | 2012/09/28 01:27:28 |
|
|||
function login() { $this->form_validation-> set_rules('username', 'Username', 'xss_clean|required|callback_username_check'); $this->form_validation-> set_rules('password', 'Password', 'xss_clean|required|min_length[4]|max_length[12]|sha1| 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'] = "You are logged in! Now go take a look at the " . anchor('account/dashboard', 'Dashboard'); $this->load->view('account/success', $data); } } function password_check() { $this->db->where('username', $this->_username); $query = $this->db->get('users'); $result = $query->row_array(); if($result['password'] == $this->_password); { return TRUE; } if($query->num_rows() == 0) { $this->form_validation-> set_message('password_check', 'There was an error!'); return FALSE; } } 위 원본.. unction login() { //echo sha1($this->input->post('password')); //set_rules 검사규칙을 설정 :: 필드이름을 알바보기 쉽게 바꾸주자. // Cascading Rules 3번째 파라미터를 이용해 적용한다. //콜백을 호출하기위해서는 규칙에 있는 함수명을 "callback_" 라는 접두어와 함께 넣어줌. //콜백함수에 추가 파라미터를 전달하고 싶다면, 콜백함수 뒤에 대괄호를 추가한후 그안에 넣어주면 됌.예: "callback_foo[bar]" . //여러분은 콜백으로 전달되는 폼 데이터를 처리하거나 리턴할수 있습니다. 콜백함수가 불린(boolean TRUE/FALSE) 외의 어떤 값을 리턴하더라도 원본의 폼데이터가 아니라 새롭게 처리된 데이터라고 가정합니다. $this->form_validation->set_rules('username','Username','xss_clean|required|callback_username_check'); $this->form_validation->set_rules('password','Password','xss_clean|required|min_length[4]max_length[12]sha1|callback_password_check'); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ $this->_username = $this->input->post('username'); $this->_password = sha1($this->input->post('password')); if($this->form_validation->run() == FALSE) { $this->load->view('account/login'); } else { $this->account_model->login(); $data['message'] = "You are logged in! Now go take a look at the ". anchor('account/dashboard', 'Dashboard'); $this->load->view('account/success', $data); } } function logout() { $this->session->sess_destroy(); $this->load->view('account/logout'); } function password_check() { //$this->db->where();이함수는 4가지중 한가지 방법을 사용하여 WHERE절을 설정할수 있음. $this->db->where('username',$this->_username); //조회쿼리를 수행하면 유저 테이블의에 있는 레코드를 가져오는 쿼리를 자동으로 실행후 쿼리변수에 저장한다. $query = $this->db->get('users'); //row() 한줄의 결과만을 리턴합니다. 한줄 이상의 결과면 맨 윗줄만 가져온다. //row_array() 위 함수와 동일하나 객체가 아닌 배열의 형태로 결과를 리턴한다. if(count($query->row_array()) == 0) { $this->form_validation->set_message('password_check','You have not ID, try again please!'); return FALSE; } $result = $query->row_array(); if($result['password']==$this->_password) { return TRUE; } else { $this->form_validation->set_message('password_check','There was an error!'); return FALSE; } }
User Authentication(사용자 검증)1
CodeIgniter 1.7 Professional Development(2010)의 일부를 발췌해서 번역한 것입니다. 로그인 버튼을 두번 누르면.. 새션이 생겨 버립니다. 왜 그럴까요? ㅠㅠ 오류가 왜 뜨는지도 모르겠지만.. A PHP Error was encounteredSeverity: Notice Message: Undefined index: password Filename: controllers/account.php Line Number: 80 A PHP Error was encounteredSeverity: Warning Message: Cannot modify header information - headers already sent by (output started at C:\APM_Setup\htdocs\system\libraries\Exceptions.php:164) Filename: libraries/Session.php Line Number: 662 Success!You are logged in! Now go take a look at the Dashboard
|
|||
다음글 | why? how? CI sessoin!!!!! 질문.... (3) | ||
이전글 | view 부분 상위 경로로 변경 하는 방법? (2) | ||
짱큰형
/
2012/09/28 01:36:16 /
추천
0
위에 값은 틀림값 입니다. 맨 아래 보시면.. 로그인 성공 페이지가 뙇~
|
템포
/
2012/09/28 08:58:22 /
추천
0
처음껀 password 변수가 정의되어있지 않다 이건거같은데..
두번째껀 session을 로드하기전에 뭔가가 불렸다는거 같은데.. 시작한지 얼마안되서 에러만 보고 저도 뭐라 말씀드리기가 어렵네요;; |
한대승(불의회상)
/
2012/09/28 11:10:30 /
추천
0
password 변수만 초기화 시켜 주시면 에러가 모두 해결 될겁니다.
|
변종원(웅파)
/
2012/09/28 12:21:48 /
추천
0
두번째 메세지는 세션함수 전에 에러나 echo 출력이 있으면 나오는 메세지입니다.
(기억해두시면 앞으로 프로그램할때 편합니다.) 윗줄 에러를 없애면 아랫줄도 안나오구요. 해결은 불상님 말씀처럼.. |
짱큰형
/
2012/09/28 17:59:13 /
추천
0
웅파님 불의회상님 조언 감사합니다.
|