2012-01-26 3 views
0

Я смущен, какой подход требуется при обновлении статуса, например, доставки в системе нашего клиента. При нормальном процессе они предоставляют нам URL-адрес, где мы будем отправлять данные доставки.PHP cURL или подход заголовка?

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

Если это будет

header('Location:http://path/to/client/parse_update_delivery_status.php'); 

раз все обновления в нашей системе осуществляется или

cURL.... //http post to client's url for updating delivery status on their system based on what we passed here 

подход?

Я бы очень признателен за ваш вклад! :) Благодаря!

ответ

1

Я вполне уверен, что это должно быть сделано с помощью cURL, и, по крайней мере, будет работать намного лучше, используя завиток. Получает ли parse_update_delivery_status.php данные из HTTP POST?

Использование заголовка местоположения приводит к тому, что браузер перенаправляется на этот сценарий, и данные не передаются вместе с ним (если вы не добавите его в строку запроса). Если обновление было выполнено, человек мог бы потенциально остановить их браузер от загрузки перенаправления, нажав стоп достаточно быстро. Кроме того, есть вероятность, что этот скрипт не выдаст ничего значимого для пользователя, поэтому они останутся с пустой страницей или данными на своем экране, которые они не понимают, и им придется использовать кнопку «Назад», чтобы вернуться на ваш сайт.

Если обновление было выполнено из задания cron или PHP CLI-скрипта, то заголовки не имеют никакого значения.

+0

Я вижу, поэтому мне просто нужно сделать cURL на своем URL-адресе, который разбирает изменение статуса доставки и попросит их вернуть метод «OK» или «ОШИБКА» для нашей обработки системы после cURL. Надеюсь, я правильно понял. Большое спасибо! :) – Woppi

+0

Вы получили это, с curl вы можете отправить запрос непосредственно на свой сервер с PHP и получить ответ и решить, было ли обновление успешным или если оно по какой-либо причине не получилось. Curl очень прост в использовании, и есть много примеров, хотя те, что на php.net, немного слишком просты. Но познакомившись с [curl_init] (http://php.net/curl_init), [curl_setopt] (http://php.net/curl_setopt), [curl_exec] (http://php.net/curl_exec) и различные варианты завихрения должны сделать любой учебник и задачу легко понять. – drew010

+0

Спасибо! Теперь я понимаю, как это сделать. Ваш ответ очень прост и прямо к делу! Еще раз спасибо сэру! :) – Woppi

1

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

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