2009-03-30 3 views
0

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

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

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

mail('[email protected]','data feed from vendor',$feedData); 

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

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

Спасибо!

+0

уточните, как и что они «отправляют» и как вы его получите. – Karsten

ответ

0

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

0

http должно быть в $ _POST ['var'];

попробовать это:

mail('[email protected]','data feed from vendor',var_export($_POST, true)); 
+0

Привет, я тоже пробовал это, и попробовал снова. Я снова получил сообщение по электронной почте. Все, что у них есть, это URL-адрес, и они якобы отправляют мне ссылку на URL-адрес. Я думаю, что они делают сервер на сервере, но у меня есть барьер общения с ними. THANKS –

0

Вы загружаете файл и читать его с PHP: // ввода ?, так как PHP: // вход не работает с многочастных/form-данных

0

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

1

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

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

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

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

mail('[email protected]', 'data feed from vendor', $testDump); 

Тестирование процесса:

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

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

  2. Задать вопрос продавцу о POST своих данных

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

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

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

+0

Большое спасибо за этот очень подробный ответ, я попробую! –

Смежные вопросы