You can specify the post name in curl. Right now you're submitting JSON, but without a name. (Link to curl man pages)
-d data={JSON}
Then in php you can load and decode the JSON: (Link to json_decode in the php manual)
$data = json_decode($_POST['data'], true);
$user = $data['user'];
If you want to continue sending data without using key/value pairs, you can keep your existing implementation of curl and use the following in PHP:
$data = @file_get_contents("php://input");
$json = json_decode($data, true);
This was taken from: XMLHTTP request passing JSON string as raw post data