Réceptionner des données JSON en POST avec PHP
Nous avons récemment vu comment envoyer des données JSON en POST avec PHP, savoir comment les réceptionner peut être aussi utile.
Il n'y a rien de compliqué, seulement à savoir qu'on ne trouvera rien dans les valeurs $_POST ou $_REQUEST. Il y a donc une petite subtilité à connaître, il faut passer par un autre chemin :
$jsonData = file_get_contents("php://input");
puis le décoder pour retrouver notre objet, ou notre tableau associatif dans PHP
$data = json_decode($jsonData, true);
et voilà, rien de plus compliquer.
Si l'on veut border tout cela, on peut ajouter quelques contrôles pour mieux gérer les erreurs, à remplacer, évidemment par vos propres retours.
/* Reception du JSON */
$jsonData = file_get_contents("php://input");
/* Verifie si JSON est vide */
if (strlen($jsonData) > 0) {
/* Decoder JSON */
$data = json_decode($jsonData, true);
/* Verifie les erreurs et le format final */
if (!(json_last_error() == JSON_ERROR_NONE and is_array($data)))
die('Données JSON invalides.');
} else
die('Aucune données JSON.');