제목 | php5.6 이상에서 appication/json 타입으로 데이터 전송시 오류 | ||
---|---|---|---|
글쓴이 | 변종원(웅파) | 작성시각 | 2018/06/08 18:11:36 |
|
|||
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
|
진이s
/
2018/06/11 11:06:42 /
추천
0
얼마전 php 7.1 에서 api 생성중 위와 같은 문제로 인해 content-type 을 변경한 기억이 있네요. 이글을 좀더 빨리 봤다면 삽질 안했을텐데 팁 감사합니다! |
변종원(웅파)
/
2018/06/11 14:41:41 /
추천
0
한대승/ 그래서 ci가 좋다는... ^^ 진이s/ 저도 필요에 의해 바꾸다보니 데이터가 안나와서 원인을 찾게 됐습니다. ^^ |
코드이그나이터는 input 클래스의 $this->input->raw_input_stream 을 사용하시면 됩니다.