2015-10-15 4 views
0

Я пишу небольшое приложение PHP, которое будет принимать данные post из API-интерфейсов Send Grids Webhook, но похоже, что он отправляет json в качестве данных для публикации. Я не уверен, как получить доступ к этим данным. Раньше я работал с пост-данными, но я обращаюсь к нему с помощью $ _POST. Я никогда не получал данные json post.Доступ к данным json post с php

Вот мой код, дайте мне знать, если я иду в правильном направлении

include 'send_grid_conn.php'; 
$dealer = (isset($_GET['dealer']) && !empty($_GET['dealer']))?$_GET['dealer']:"N/A"; 
echo $dealer; 

$postData = json_decode($HTTP_RAW_POST_DATA,true); 

$email = (isset($postData['email']))?$postData['email']:"nothing"; 

    $stmt = $connection->prepare("INSERT INTO `send_grid`(`email`, `dealer`) VALUES (?,?)"); 
    $stmt->execute(array($email, $dealer)); 

вставной части работы, но я не могу получить доступ к данным POST.

Я собираюсь очистить код кстати. Сейчас я просто в тестовом режиме, пытаясь получить доступ к данным json.

+1

Try 'var_dump ($ PostData)', чтобы увидеть, что массив содержит. –

ответ

0

$HTTP_RAW_POST_DATA нежелателен РНР 5.6 и удален в PHP 7, вы должны использовать php://input, поскольку он не будет зависеть от любой конфигурации php.ini, и вы пытались декодирования $_POST?. В запросе json является просто строкой, поэтому у вас не должно быть проблем.

С php://input:

json_decode(php://input, true); 

С $_POST:

json_decode($_POST, true); 
Смежные вопросы