| 제목 | 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
웅파님 불의회상님 조언 감사합니다.
|