За последние 24 часа нас посетили 16767 программистов и 1694 робота. Сейчас ищут 804 программиста ...

http_post_fields отправить и принять ответ

Тема в разделе "PHP для новичков", создана пользователем Tchort, 2 июн 2011.

  1. Tchort

    Tchort Активный пользователь

    С нами с:
    7 дек 2010
    Сообщения:
    51
    Симпатии:
    0
    Вечера доброго.

    нужно отправить пост макаром на http://mobiquest.ru/coupon_campaign/api ... o_campaign некоторые данные, в случае если все нормально нам дадут 1, если нет 0.
    Что сказано в документации сервиса:
    Соответственном делаю
    PHP:
    1. //проверяем поля
    2.       if(!preg_match("/^[0-9]{0,3}+$/", $_POST['userCode'])) echo ("Код задан в неверном формате");
    3.       if(!preg_match("/^[0-9]{0,7}+$/", $_POST['userPhone'])) echo ("Телефон задан в неверном формате");
    4.        
    5. //лепим телефонный номер из всего что получили
    6.       $phone = "7".$_POST['userCode'].$_POST['userPhone'];
    7. //наши поля
    8.       $fields = array (
    9.          'token' => 'r3ferf32we2efw3r23f21121',
    10.          'response' => 'json',
    11.          'phone' => $phone);
    12.        
    13.      $response = http_post_fields("http://mobiquest.ru/coupon_campaign/api/add_subscriber_to_campaign", $fields);
    Вопрос: Правильно ли я отправляю данные на сервер? Как получить ответ сервера и обработать его для дальнейшей работы?
     
  2. dsda

    dsda Активный пользователь

    С нами с:
    3 сен 2008
    Сообщения:
    34
    Симпатии:
    0
    Я бы пользовал curl. Большая гибкость и возможность отследить все ошибки.
     
  3. Tchort

    Tchort Активный пользователь

    С нами с:
    7 дек 2010
    Сообщения:
    51
    Симпатии:
    0
    А можно на моем примере показать использование курла? Да и есть ли мне смысл если мне надо всего-то отправить пару значений и принять ответ с сервера.
     
  4. bkm

    bkm Активный пользователь

    С нами с:
    22 окт 2009
    Сообщения:
    299
    Симпатии:
    0
    пример проверки урл на существование, может поможет.

    PHP:
    1. <?php
    2. function check_url($url) {
    3.     $c = curl_init();
    4.     curl_setopt($c, CURLOPT_URL, $url);
    5.     curl_setopt($c, CURLOPT_HEADER, 1); // читать заголовок
    6.     curl_setopt($c, CURLOPT_NOBODY, 1); // читать ТОЛЬКО заголовок без тела
    7.     curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    8.     curl_setopt($c, CURLOPT_FRESH_CONNECT, 1); // не использовать cache
    9.     if (!curl_exec($c)) return false;
    10.  
    11.     $httpcode = curl_getinfo($c, CURLINFO_HTTP_CODE);
    12.     return ($httpcode < 400);
    13. }
     
  5. bkm

    bkm Активный пользователь

    С нами с:
    22 окт 2009
    Сообщения:
    299
    Симпатии:
    0
    или

    PHP:
    1. <?php
    2. $result_send = "http://mobiquest.ru/coupon_campaign/api/add_subscriber_to_campaign?token=ваш уникальный идентификатор&response=json& id=ID купона&phone=Номер телефона&first_name=Имя&last_name=Фамилия&email=емэйл";
    3.  
    4. $res = file_get_contents($result_send, False);
    а потом уже проверять...

    З.Ы. подставьте значения в урл, вставьте в адресную строку браузера и перейдите. в результате вы должны увидеть ответ сервера.