Как принять JSON ответ на PHP?

170
25 августа 2018, 14:50

На фронте при нажатии на кнопку собираю все данные с форми в JSON и отправляю на сервер

const onSubmit = async values => {
console.log(JSON.stringify(values));
return fetch('http://shop-api.local/API/feedbackForm.php', {
    method: 'POST',
    body: JSON.stringify(values),
}).then(res => {
    return res;
}).catch(err => err);
};

JSON

{"name":"Dan","email":"dan@mail.com","message":"bla bla bla"}

Нужно принять этот json на сервере и запись в бд, как то так пробовал, не работает

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$link = mysqli_connect($host, $user, $password, $database)
or die("Ошибка " . mysqli_error($link));

$sql = "INSERT INTO Feedback (name, email, message) VALUES ('$name', '$email', '$message')";
  $result = mysqli_query($link, $sql) or die("Ошибка " .     mysqli_error($link));
if ($result)
echo "Добавлено в базу данных.";
mysqli_close($link);
Answer 1
<?php
    $json = file_get_contents('php://input');
    $obj = json_decode($json, true);
    print_r($obj);

Получится простой ассоциативный массив, вот такой:

Array
(
    [name] => Dan
    [email] => dan@mail.com
    [message] => bla bla bla
)

дальше читаете $obj и распихиваете по переменным.

$name = $obj['name'];
$email = $obj['email'];
$message = $obj['message'];

$_POST здесь вам не поможет, так как в нем нет этих данных.

READ ALSO
Почему не работает id3_get_tag?

Почему не работает id3_get_tag?

Fatal error: Uncaught Error: Call to undefined function id3_get_tag() in /pages\blocks\music\musicphp:101 Stack trace: #0 /\pages\music

193
Как лучше и быстрее всего передать первый массив данных клиенту

Как лучше и быстрее всего передать первый массив данных клиенту

Есть сайт, база данных и PHP прослойкаНадо передать клиенту первый JSON массив данных, а потом его обновлять через сокет

177
Как лучше реализовать таксономию

Как лучше реализовать таксономию

буду краток: У меня есть таблицы с нодами (моими статьями), файлами (к этим статьям)Конечно теперь не хватает организации, таблицы с тегами(терминами)

192
Проблема с рекурсией

Проблема с рекурсией

Возможно я просто не силен в данной сфере, но задача состоит в том, что я присылаю на сервер название файлов, оно уже их ищет и записывает данные...

158