Receive JSON POST with PHP Receive JSON POST with PHP json json

Receive JSON POST with PHP


$data = json_decode(file_get_contents('php://input'), true);print_r($data);echo $data["operacion"];

From your json and your code, it looks like you have spelled the word operation correctly on your end, but it isn't in the json.


Maybe also worth trying to echo the json string from php://input.

echo file_get_contents('php://input');

If you already have your parameters set like $_POST['eg'] for example and you don't wish to change it, simply do it like this:

$_POST = json_decode(file_get_contents('php://input'), true);

This will save you the hassle of changing all $_POST to something else and allow you to still make normal post requests if you wish to take this line out.

It is worth pointing out that if you use json_decode(file_get_contents("php://input")) (as others have mentioned), this will fail if the string is not valid JSON.

This can be simply resolved by first checking if the JSON is valid. i.e.

function isValidJSON($str) {   json_decode($str);   return json_last_error() == JSON_ERROR_NONE;}$json_params = file_get_contents("php://input");if (strlen($json_params) > 0 && isValidJSON($json_params))  $decoded_params = json_decode($json_params);

Edit: Note that removing strlen($json_params) above may result in subtle errors, as json_last_error() does not change when null or a blank string is passed, as shown here: