I\'m using curl to send this:
curl -i -H \"Accept: application/json\" -H \"Content-type: application/json\" -X POST -d \"{firstname:james}\" http://hostname/inde
$_POST only works if you are sending encoded form data. You are sending JSON, so PHP cannot parse it into the $_POST array.
$_POST
You need to read directly from the POST body.
$post = fopen('php://input', r); $data = json_decode(stream_get_contents($post)); fclose($post);