2012-11-19 4 views
0

JSON 페이로드가있는 다른 시스템에서 POST를 받기 위해 간단한 PHP를 작성하고 있습니다. 그 요청은 Content-Type : application/json입니다.PHP - POST json 수신 문제가 발생했습니다.

나는 시작점으로 tson 파일에 json을 덤프하려고 시도하고 있지만 그럴 일은 없다. 다음은 PHP 파일입니다. 제안/수정 사항은 매우 감사하겠습니다! 그것의 모양에서?>

+0

은 Ajax를 통한 것입니까? – Digitalis

+0

POST 요청입니까? Ajax를 사용할 수도 있지만 그 부분을 제어 할 수는 없지만 요청에서 볼 수있는 내용이 있다면 알려주세요. –

+0

그렇다면 문제는 게시물을 사용하고 있지 않은 것일 수 있습니다. . 게시물의 출력물을 버리려고 했습니까? – Digitalis

답변

2

<?php 
    ini_set("display_errors", "On"); 
    session_start(); 

    $raw_json = file_get_contents('php://input'); 
    $cooked_json = json_decode($raw_json); 


    $myfile = fopen('/home/wgordon/log.txt','a'); 
    $fp = fwrite($myfile, $cooked_json); 
    fclose($myfile); 

는 $ raw_json의 초기 값은 문자열이 될 것입니다. 배열로 액세스하려고하면 더 작은 문자열 만 반환합니다. 이것을 json_decode에 전달하면 아마도 null을 반환 할 것입니다.

$ raw_json의 첫 번째 값을 검사해야합니다. 이름/값 쌍의 쿼리 문자열로 들어 오면 배열처럼 취급하기 전에 split() 또는 이와 유사한 것을 사용하여 디코딩해야합니다.

+0

동의합니다. 문제. 그러나, 나는 file_get_contents 중 하나에 대한 URL도 확실하지 않습니다. 또는 그 자리 표시 자입니까? – Digitalis

+1

IO 스트림입니다. $ _REQUEST를 통해 오지 않기 때문에 PUT 요청에서 데이터를 가져 오는 데 자주 사용됩니다. – chriswoodford

+0

아, 알았습니다. 나는 그것을 몰랐다. 내 사과. – Digitalis

관련 문제