제목 | 서버에 있는 프로젝트를 local로 가져와 테스트 했을시 오류 원인 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 정수리 | 작성시각 | 2017/11/16 10:18:21 |
|
|||
서버에 있는 프로젝트를
local로 가져와서 테스트를 할려고 하는데
로그인부터 막히네요;;
환경자체도 똑같이 맞추었는데 계속 에러가 납니다;
로그인 시 ajax를 통해 검증을하는데
if($this->form_validation->run() == FALSE) { echo json_encode(FALSE); } else { 계속 false를 출력하네요
크롬개발자도구에서 확인해보니 ajax통신시 500에러가 출력이 되고 되돌아 오는값을 확인해보면
false 값을 출력이 됩니다.
echo json_encode(FALSE) 위에 echo '1' 할경우
1은 출력이 됩니다.
이부분에서 막히네요;;
서버에서는 똑같은 계정으로 접속했을 때는 정상적으로 로그인이 됩니다.(로컬 db도 서버db와 똑같이 맞추었습니다.)
500에러가는 문법오류로 알고 있는데
서버에 있는 코드로 그대로 가져왔기에 문법에 잘못된 부분은 없는데말이죠 ㅜㅜ
어디 부분이 문제이길래 서버와 달리 로컬에서는 에러가 출력이되는것 일까요 ?
어디에서부터 확인해야 할까요??
if($this->form_validation->run() == FALSE) { echo json_encode(FALSE); } else { $name = $this->input->post('name',TRUE); $pass = $this->input->post('pass',TRUE); $user = $this->Login_m->get_pass($name); if(empty($user)) { echo json_encode(1);//사용자가 없을때 exit; } else if($user->connect == 'N'){ echo json_encode(5);//상태가 N일때 exit; } if($name == 'jds') { $this->session->set_userdata('name', $user->name);//아이디 $this->session->set_userdata('name2', $user->name2);//아이디 $this->session->set_userdata('dept', $user->dept);//부서 $this->session->set_userdata('scope', $user->scope);//권한 $this->session->set_userdata('user_name', $user->name2);//이름 $this->session->set_userdata('deptCD', $user->deptCD);//부서번호 $this->session->set_userdata('gye', $user->gye);//계 $this->session->set_userdata('gyeCD', $user->gyeCD);//계번호 $this->session->set_userdata('rank', $user->rank);//직위 $this->log_m->set_login_log('login'); //echo json_encode(2017); echo json_encode(7);//로그인 성공 exit; } else if($name == $user->name && password_verify($pass, $user->pass)) {//password 라이브러리를 사용하여 검증 $this->session->set_userdata('name', $user->name);//아이디 $this->session->set_userdata('name2', $user->name2);//아이디 $this->session->set_userdata('dept', $user->dept);//부서 $this->session->set_userdata('scope', $user->scope);//권한 $this->session->set_userdata('user_name', $user->name2);//이름 $this->session->set_userdata('deptCD', $user->deptCD);//부서번호 $this->session->set_userdata('gye', $user->gye);//계 $this->session->set_userdata('gyeCD', $user->gyeCD);//계번호 $this->session->set_userdata('rank', $user->rank);//직위 $this->log_m->set_login_log('login'); //echo json_encode(2017); echo json_encode(7);//로그인 성공 exit; } else { //echo json_encode(FALSE); echo json_encode(2);//비밀번호 틀림 exit; } }
|
|||
다음글 | 이러한 차이는 어떤 설정때문에 발생하는 건가요? (4) | ||
이전글 | 절대 URL로 접근 못하도록 하는 방법 (2) | ||
kaido
/
2017/11/16 10:38:46 /
추천
0
500의 대부분은 데이터베이스 에러입니다
|
정수리
/
2017/11/16 11:07:31 /
추천
0
@kaido 답변감사합니다. 말씀하신대로 모델에 있는 함수를 통해 데이터를 가져올려고 하니false를 반환하네요;;
제 로컬에서 mysql와 연동이 되어있는지 테스트를 해보니 정상적으로 연결은 되있는 것 같구요
database.php에서도 정상적으로 설정한것 같은데 false라는 오류만 출력하니 데이터베이스의 어떤 오류인지 확인이 힘드네요 |
정수리
/
2017/11/16 11:26:42 /
추천
0
@kaido 코드를 수정하여 DB에서 데이터를 가져오는지 확인해보니 정상적으로가져네요;; 그렇다면 데이터베이스 오류는 아니지 않나요?? |
한대승(불의회상)
/
2017/11/16 13:11:07 /
추천
0
아파치 로그와 PHP 로그를 먼저 살펴보세요.
|
정수리
/
2017/11/16 13:17:02 /
추천
0
@한대승 답변감사합니다. 코드하나하나 주석처리 하면서 테스트 해보니 원인을 찾았습니다. $this->log_m->set_login_log('login'); 이부분에서 원인이였더라구요 Field 'logouttime' doesn't have a default value insert into tb_login_view(userid, username, deptname, ip, logintime) values(0, 'jds', '�쒖뒪�쒓�由ъ옄', '127.0.0.1', '2017-11-16 13:43:18') 이러한 출력이 되는데 logouttime 이라는 필드의 경우 기본값을 가지고 있지 않은데 기본값이 값이 없다라는 에러가 출력이 되네요;; 로컬db에서는 logouttime필드를 수정하여 해결하였습니다. 나름 서버개발환경하고 로컬개발환경하고 똑같이 맞췄다고 생각했는데
막상 로컬에서 테스트해보니 안되는게 많네요ㅜㅜ |