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);
}
kadio // 제가 아예안넘어오면 이해라도할텐데
아래 예시처럼 if부분 값은 넘어오구요. else부분이 절때로안넘어옵니다.
db접근도 잘되고, 조건식이 틀릴리도없는데..
if (1==1){
$json = ['a'=>'b']
echo json_encode($json)
}else{
$json = ['a'=>'b']
echo json_encode($json)
}
음 하나하나 확인해 보셔야 할듯 합니다.
파폭,크롬 개발자 모드에서 var_dump($_POST); 로 넘어오는 값을 찍어보세요.
1. UID, get_csrf_token_name, get_csrf_hash 정상적인지 확인,
2. 정상적으로 넘어오면, 비교문 값들에 빈문자열 포함될 수도 있어 tirm() 사용,
3. php5.4 이상이겠지만 설마하는 맘으로 [] 대신 array() 사용.
개발자 모드에서 echo $json; echo json_encode($json) 값이 어떻게 출력되는지
확인해 보시면 문제점을 찾을 수 있을꺼라 생각됩니다.
$user->UID == $UID ←이 조건식이 항등식일 가능성은 없나요? 앞전 글에서 올려주신 DB조회 소스를 같이 생각해 보면 json 문제라기보다는 검증 단계에서 문제가 있는 거 아닌가 싶네요.
구문적으로 문제가 안되는데 json이 이상하게 안넘어오는 거라면 파일 인코딩 하고도 관련있을수 있습니다.
이전에 utf8 boom 으로 파일이 저장되어 있어서 한참 헤멧적이 있긴합니다.
그외에 뭔가 보이지 않는 빈 값이 들어가 있는경우도 있으니, 파일을 지우고 깨끗하게 타이핑 해서 해결되는 경우도 있습니다.