CI 묻고 답하기

제목 json이 작동을 안해요...
카테고리 CI 2, 3
글쓴이 째리 작성시각 2019/01/18 17:36:39
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 12663   RSS

json형태가 아닌 text로받으면 정상적으로 처리되는데

왜 json으로만받으면 이상하게 조건문이 걸린 json만 리턴이됩니다.

조건문에 맞지않는데도 같은결과가나오네요;;

이것만 2일째 잡고있네요 참;;

$UID = $this->input->post('UID');
                $user = $this->user_model->getUserID(array('UID'=>$UID));
        
                if($user->UID == $UID){
                    $result = ['success' => 'false'];
                    $this->output->set_content_type('application/json');
                    echo json_encode($result,JSON_UNESCAPED_UNICODE);
                }if($user->UID != $UID){
                    $result = ['success' => 'true'];
                    $this->output->set_content_type('application/json');
                    echo json_encode($result,JSON_UNESCAPED_UNICODE);
                }

 

 다음글 컨트롤러에서 조회된데이터에 서브쿼리 쓰는 방법이 있나요... (3)
 이전글 파일업로드 질문좀드릴게요.. (7)

댓글

kaido / 2019/01/18 18:16:03 / 추천 0

구문적으로 문제가 안되는데 json이 이상하게 안넘어오는 거라면 파일 인코딩 하고도 관련있을수 있습니다.

이전에 utf8 boom 으로 파일이 저장되어 있어서 한참 헤멧적이 있긴합니다.

그외에 뭔가 보이지 않는 빈 값이 들어가 있는경우도 있으니, 파일을 지우고 깨끗하게 타이핑 해서 해결되는 경우도 있습니다.

째리 / 2019/01/18 18:20:13 / 추천 0

kadio // 제가 아예안넘어오면 이해라도할텐데

아래 예시처럼 if부분 값은 넘어오구요. else부분이 절때로안넘어옵니다.

db접근도 잘되고, 조건식이 틀릴리도없는데..

if (1==1){

$json = ['a'=>'b']

echo json_encode($json)

}else{

$json = ['a'=>'b']

echo json_encode($json)

}

 

하마쿵쿵 / 2019/01/18 18:48:39 / 추천 0

음 하나하나 확인해 보셔야 할듯 합니다.

파폭,크롬 개발자 모드에서  var_dump($_POST);  로 넘어오는 값을 찍어보세요.

1. UID, get_csrf_token_name, get_csrf_hash 정상적인지 확인,

2. 정상적으로 넘어오면,  비교문 값들에 빈문자열 포함될 수도 있어 tirm() 사용,

3. php5.4 이상이겠지만 설마하는 맘으로 [] 대신 array() 사용.

개발자 모드에서 echo $json;  echo  json_encode($json) 값이 어떻게 출력되는지

확인해 보시면 문제점을 찾을 수 있을꺼라 생각됩니다.

엽토군 / 2019/01/18 19:00:17 / 추천 0
혹시 $user->UID == $UID ←이 조건식이 항등식일 가능성은 없나요? 앞전 글에서 올려주신 DB조회 소스를 같이 생각해 보면 json 문제라기보다는 검증 단계에서 문제가 있는 거 아닌가 싶네요.