TIP게시판

제목 php5.6 이상에서 appication/json 타입으로 데이터 전송시 오류
글쓴이 변종원(웅파) 작성시각 2018/06/08 18:11:36
댓글 : 3 추천 : 0 스크랩 : 0 조회수 : 11974   RSS

php5.6 이상에서 content-type을 appication/json 으로 데이터 전송시 $_POST 로 데이터를 받을 수 없습니다.

row데이터에서 값을 가져와서 파싱해서 사용해야 하며 $HTTP_RAW_POST_DATA 가 5.6 이상에서 deprecated 되었기 때문에

아래와 같이 해야 데이터를 가져올 수 있습니다.

$aData = var_export(file_get_contents('php://input'),TRUE);
$aArr    = json_decode(str_replace("'", "", $aData), true);

 

각자 개발중인 api에서 어떤 곳은 json 타입으로 어떤 곳은 form 으로 전송을 해서 통일을 위해 작업중에 발생한 문제입니다.

 다음글 nginx + php + mysql seting (2)
 이전글 PHP Socket, Socket.io, Multi P...

댓글

한대승(불의회상) / 2018/06/09 19:54:54 / 추천 0

코드이그나이터는 input 클래스의 $this->input->raw_input_stream 을 사용하시면 됩니다.

 

진이s / 2018/06/11 11:06:42 / 추천 0

얼마전 php 7.1  에서 api 생성중 위와 같은 문제로 인해 content-type 을 변경한 기억이 있네요.

이글을 좀더 빨리 봤다면 삽질 안했을텐데 팁 감사합니다!

변종원(웅파) / 2018/06/11 14:41:41 / 추천 0

한대승/ 그래서 ci가 좋다는... ^^

진이s/ 저도 필요에 의해 바꾸다보니 데이터가 안나와서 원인을 찾게 됐습니다. ^^