Как правильно передать данные из формы на другой сервер?

Тема в разделе "Как сделать...", создана пользователем Sergo_Sev, 7 авг 2014.

  1. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Есть форма на сайте и после её отправки данные должны записаться в базу и передаться на сторонний сервер

    Известные мне варианты:
    1) Просто передать POST запрос на другой сервер (пока не совсем понял как это делается в данном случае)
    2) Передать JSON через POST как тут
    3) Передать каждый параметр в GET запросе (server.php?name=Вася&phone=123)
    4) Серилизовать массив, кодировать в base64 и после передать его как GET параметр на сервер (тут то косяки с кодировкой строки base64, то плюсики теряются - в обоих случаях строка не декодируется правильно, приходится перекодировать строку и возвращать плюсы)

    Так вот какой метод лучше и правильнее использовать
     
    Шумадан нравится это.
  2. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.725
    Симпатии:
    2.100
    у формы есть свойство action, в этом случае оно должжно содержать ссылку на другой сервер и скрипт приёма данных, это самый естественный способ
    как вариант, но если форма поменяется и на другом сервере нужно будет менять обработчик, придёться пилить ещё и этот курл отсылатель
    вариант привлекательный для дебага, потому как можно легко править значения, но ранее GET запрос имел ограничения и поэтому его старались не использовать
    дополнительный код, при изменениях формы, возможные дополнительные правки

    я б выбрал способ 1, но зависит от задач
     
    Джуга, Ctrogan и Sergo_Sev нравится это.
  3. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    В данном случае нужно сохранить данные на основном сервере (так явно надежней) и ещё передать их на сторонний сервер (тогда это видимо нужно так же делать через cURL как и во втором способе?)
     
    Шумадан нравится это.
  4. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.725
    Симпатии:
    2.100
    да, я упустил это, если нужно записать себе в базу, тогда постать на свой хендлер, а на сторонний сервер уже через курл запрос. единственное что я б советовал, написать функцию собирания, записи и перепосылки данных таким образом, чтоб её не править при изменении полей, ну, насколько это возможно
     
    Джуга, Ctrogan и Sergo_Sev нравится это.
  5. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Вроде можно массив сразу передать (или в крайнем случае в json), тогда можно сразу все входящие из формы данные передать, а если форма изменится, то на стороннем сервере уже можно добавить пару строчек кода для записи новых данных (форма по сути будет примерно стандартная - контактные данные и информация о товаре)
     
    Шумадан нравится это.
  6. CrashX

    CrashX В прошлом XSiteCMS

    Регистр.:
    6 июн 2008
    Сообщения:
    682
    Симпатии:
    112
    я использую дедовские методы
    1 Почта в письме сами данные, если что всегда можно "перечитать" архив
    2 передача трафика xml / или линка на xml сжатый zip и шифрованный blowfish
     
  7. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    1) На почту и так можно отправлять, но ищется более удобный способ с системой учета заказов
    2) Не знакомо мне - нужно посмотреть
     
  8. Serafimer

    Serafimer Создатель

    Заблокирован
    Регистр.:
    24 апр 2014
    Сообщения:
    36
    Симпатии:
    17
  9. Sergo_Sev

    Sergo_Sev Творец

    Регистр.:
    14 июн 2008
    Сообщения:
    571
    Симпатии:
    188
    Если бы еще с примерами готовой реализации, а так толку ноль без хороших знаний php
    Да и кажется SOAP совсем для других целей предназначен
     
    Последнее редактирование: 10 авг 2014
  10. Шумадан

    Шумадан Хабарра!!11

    Регистр.:
    6 фев 2008
    Сообщения:
    1.725
    Симпатии:
    2.100
    это лишнее в вашем случае, достаточно передать курлом данные на другой сервер либо виде простых пар значений либо закодированного сообщения, не нужно делать сложно там, где этого не нужно
     
    Джуга, Ctrogan, SilverGhost и ещё 1-му нравится это.