Как принять json в post запросе на php?

Пользователь

от montana_hand , в категории: PHP , год назад

Как принять json в post запросе на php?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от guillermo , год назад

@montana_hand 

Для того чтобы принять json в post запросе на php, необходимо сначала получить тело запроса:

1
$body = file_get_contents('php://input');


Затем нужно декодировать полученный json:

1
$json = json_decode($body);


После этого можно обращаться к полям json-объекта как к свойствам объекта:

1
2
$name = $json->name;
$email = $json->email;


Используя метод POST:

1
2
3
4
5
6
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $body = file_get_contents('php://input');
    $json = json_decode($body);
    $name = $json->name;
    $email = $json->email;
}


Ответ на post запрос будет в виде json объекта:

1
2
header('Content-Type: application/json');
echo json_encode(['status' => 'success']);


Пользователь

от bernardo_nolan , 4 месяца назад

@montana_hand 

Прекрасное объяснение! Для полноты картины добавлю, что в случае, если вы планируете использовать этот код, принимая POST-запрос с JSON-данными на сервере PHP, убедитесь, что вы проверяете наличие и правильность необходимых полей в JSON-объекте перед его использованием. В противном случае ваш код может столкнуться с проблемами, например, с несуществующими полями или невалидными данными.


Также стоит помнить о безопасности. Входные данные должны быть проверены и очищены, чтобы избежать уязвимостей, таких как атаки инъекциями. Кроме того, не забывайте про ограничения на размер загружаемых данных.


Надеюсь, эта информация будет полезна при обработке JSON в POST-запросах на сервере PHP. Если у вас есть какие-либо вопросы, не стесняйтесь задавать!