PHPでPOSTされたJSONデータを受信する
スマートフォンなどから認証のためにIDやパスワードをJSONデータとしてPOST送信した場合、サーバサイドをPHPで実装してハマったのでメモです。
PHPの場合、HTMLのフォームからPOSTされた場合は、$_POSTを使用してデータを取得するのですが、スマートフォンなどからJSONデータをPOSTした場合、$_POSTでは取得できません。
そこで、リクエストのbody部から生のデータを読み込む事にしました。
$handle = fopen('php://input','r'); $jsonInput = fgets($handle); $json = json_decode($jsonInput);
php://inputを利用するのに気が付かなくて、ちょっと悩みました。