Проблема с фидом данных в PHP - PullRequest
0 голосов
/ 30 марта 2009

Привет. Я пытаюсь получить поток данных от поставщика. Я настроил страницу, дал им URL-адрес и сообщил им данные httppost csv.

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

$feedData = file_get_contents("php://input");

mail('myemail@gmail.com','data feed from vendor',$feedData);

Они сказали, что прислали мне несколько тестовых данных, я проверил свою электронную почту и получил письмо, но оно было пустым. Я не уверен, что я сделал что-то не так или они сделали.

Каким должен быть мой следующий шаг, чтобы решить проблему?

Спасибо!

Ответы [ 5 ]

1 голос
/ 22 апреля 2009

Данные HTTP POST должны присутствовать в $_POST. Вы должны сначала проверить, что этот суперглобальный содержит какие-либо данные. Если нет, данные не будут правильно размещены на вашем URL.

Вы можете проверить данные, отправленные по электронной почте себе, однако это может быть проблематично для нестроковых типов. Вы должны быть уверены, что $feedData является строкой и содержит данные.

Изучение типа и содержимого переменной просто при объединении var_dump () с выходной буферизацией. Попробуйте:

ob_start();
var_dump($_POST);
$testDump = ob_get_contents();
ob_end_clean();

mail('user@example.com', 'data feed from vendor', $testDump);

Процесс тестирования:

  1. POST что угодно на ваш URL и проверьте, что полученное электронное письмо содержит правильные данные.

    Если полученное электронное письмо не соответствует вашим ожиданиям, ошибка связана с вашим кодом , Работайте с кодом, пока тестовое электронное письмо не будет содержать то, что вы ожидаете, учитывая данные POST.

  2. Попросите поставщика отправить свои данные

    Проверьте полученное письмо и посмотрите, соответствует ли оно ожидаемому. Если нет, узнайте у поставщика о характере отправляемых данных - возможно, ваше понимание или ожидания неверны. Повторяйте, пока не получите правильное содержание в тестовом электронном письме.

Изучив содержимое тестового электронного письма, вы можете определить элементы в $ _POST, которые соответствуют вашим потребностям, извлечь их по мере необходимости и продолжить разработку.

В тот момент, когда ваше тестовое электронное письмо будет содержать то, что вы ожидаете, запишите содержимое $ _POST, чтобы вы могли создать идентичный запрос POST, который вы можете использовать при продолжении разработки.

0 голосов
/ 31 марта 2009

Вы также можете попробовать отфильтровать и прочитать http-пакеты через Wireshark , если вы сами принимаете принимающую часть.

0 голосов
/ 30 марта 2009

http сообщения должны быть в $ _POST ['var'];

попробуйте это:

mail('myemail@gmail.com','data feed from vendor',var_export($_POST, true));
0 голосов
/ 30 марта 2009

Вы загружаете файл и читаете его с помощью php: // input ?, поскольку php: // input не работает с multipart / form-data

0 голосов
/ 30 марта 2009

проверьте, какой $feedData вы используете и соответствует ли он требованиям . Я думаю, что это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...