За последние 24 часа нас посетили 59149 программистов и 1810 роботов. Сейчас ищут 1979 программистов ...

Как использовать POST запрос для передачи данных?

Тема в разделе "Прочие вопросы по PHP", создана пользователем Sabbath, 13 июн 2006.

  1. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    Ситуация:
    Есть 2 сайта с одинаковыми БД. Только один выступает как клиент, а второй как сервер на котором копится инфа со всех клиентов.

    Проблема в следующем:
    Как написать скрипт который передавал данные через POST запрос на сервер. Читал мануалы всякие ниче не работает :-(


    P L E A S E H E E E E E L P !
     
  2. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Если есть нужда передавать данные ИМЕННО POST, то копай в сторону cURL или сокетов. Обычно же хватает и GET
     
  3. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    А с GET'ом куда копать?
     
  4. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    olo
    А с GET'ом куда копать?
     
  5. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    А с GET'ом копать отсюда и до полного просветления в мозге :)
    Ето запрос вида http://твой_сайт/твоя_страница?парам1=чтото1&парам2=чтото2...
    Если надо обратиться к серверу, передать какието данные и получить какойто ответ, то проще всего это сделать через $result = file_get_contents('http://............');
     
  6. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    olo
    У меня такая вещь:
    Выбираю данные, генерю из них XML файл, потом этот файл присваиваю переменной и надо отправить по адресу скрипта-приемника. НАДО чтобы этот скрипт-приемник принял этот XML и засунул его в БД. Этот приемник я написал(он рабочий). осталось чтобы до него доходили данные.
     
  7. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
    Если у тебя данные не будут превышать 1кб, то можеш их смело передавать через GET, а если больше, то конечно POST
    GET'ом используй чтото типа http://страница?xml=твой_хмл
     
  8. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    olo
    Данные будут точно более 1кб. Не подскажешь сам код с POST'ом?! :)
     
  9. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    olo
    У тебя есть icq?
     
  10. olo

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

    С нами с:
    28 апр 2006
    Сообщения:
    272
    Симпатии:
    0
  11. def

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

    С нами с:
    24 апр 2006
    Сообщения:
    230
    Симпатии:
    0
    Адрес:
    Питер
    реализация post через сокеты

    PHP:
    1.  
    2.   function post($url, $content, $callBack = '' )
    3.   {
    4.     $res = '';
    5.  
    6.     $fp  = fsockopen ($url, 80, $errno, $errstr, 30);
    7.    
    8.     if (!$fp){
    9.       die("$errstr ($errno)\n");
    10.     }
    11.     else {
    12.       $request = "POST / HTTP/1.1\r\n"
    13.                . "Host: {$host}\r\n"
    14.                . "Content-Type: application/x-www-form-urlencoded\r\n"
    15.                . "Content-Length: ".strlen($content)
    16.                . "\r\n\r\n"
    17.                . $content;
    18.  
    19.       fputs($fp, $request);
    20.    
    21.       while( !feof($fp) )
    22.        if( $callBack != '')
    23.          $callBack(fgets($fp,8192));
    24.        else
    25.         $res .= fgets($fp,8192);
    26.     }
    27.  
    28.     if( $callBack != '' ) return 1 ; else return $res ;
    29.   }
    30.  
    можно использовать callback функцию для обработки данные порциями.

    да, и $host нужно определить )
     
  12. Vah

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

    С нами с:
    15 май 2006
    Сообщения:
    228
    Симпатии:
    0
    я бы на самом деле в сторону SOAP бы потопал......
     
  13. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    def
    Огромное спасибо!!! ЗАРАБОТАЛО!!!
     
  14. Денч

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

    С нами с:
    4 фев 2006
    Сообщения:
    59
    Симпатии:
    0
    +1 :)
     
  15. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    Как использовать POST запрос для передачи данных

    Приветствую!!! Использовал функцию которую ты предложил - все было ОТЛИЧНО! Потом переустановил платформу и при передаче стали выходить warningi и нифига не передается :(

    Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in z:\home\127.0.0.1\www\gen_exp.php on line 8

    Warning: fsockopen(): unable to connect to http://www.issserv.ru/:80 in z:\home\127.0.0.1\www\gen_exp.php on line 8

    где line 8 это строка $fp = fsockopen ($url, 80, $errno, $errstr, 5);

    В чем может быть проблема ???
     
  16. Anonymous

    Anonymous Guest

    убери слеш между именем хоста и номером порта.
     
  17. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    не помогает!!! ошибка тогда:

    Warning: fsockopen(): php_network_getaddresses: gethostbyname failed in z:\home\127.0.0.1\www\gen_exp.php on line 8

    Warning: fsockopen(): unable to connect to http://www.issserv.ru:80 in z:\home\127.0.0.1\www\gen_exp.php on line 8
     
  18. eduha

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

    С нами с:
    8 ноя 2006
    Сообщения:
    278
    Симпатии:
    0
    Адрес:
    Караганда
    В переменной $url указано "http://www.issserv.ru/"? Надо "www.issserv.ru"
     
  19. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    Отлично! Получилось!

    Правда вылезла еще одна, НО другая:


    Не удается отобразить страницу XML

    Не удается просмотреть ввод XML с использованием списка стилей XSL. исправьте ошибку...
    Это как?
     
  20. Anonymous

    Anonymous Guest

    Sabbath, вероятно, тебе возвращается что то в виде XML данных со связанным XSL — который он найти не может....
     
  21. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    именно! должен отобразится XML код , т.е. дерево и тегами.....
    Но выдается ошибочка...
     
  22. Anonymous

    Anonymous Guest

    (= я не телепат. Покажи возвращаемый документ то.
     
  23. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    кажись понял. тег не может начинаться с цыфры...
    ругань начинается со строки

    <sch:1_coluch_1_4>1</sch:1_coluch_1_4>
    ------------------------^
     
  24. Sabbath

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

    С нами с:
    13 июн 2006
    Сообщения:
    27
    Симпатии:
    0
    ругается на 1 в строке <sch:1_coluch_1_4>1</sch:1_coluch_1_4>

    сам xml текст

    <?xml version="1.0" encoding="windows-1251" ?>
    <ISSExpFile xmlns:sch="http://unesco.brabas.ru/schema"><Form>
    <sch:uchyear>2002/2003</sch:uchyear><sch:tip>ВПО</sch:tip>
    <sch:cat>МОУ</sch:cat>
    <sch:name>g</sch:name>
    <sch:street>g</sch:street>
    <sch:house>g</sch:house>
    <sch:tel>g</sch:tel>
    <sch:fax>g</sch:fax>
    <sch:homepage>g</sch:homepage>
    <sch:mail>g</sch:mail>
    <sch:bank>g</sch:bank>
    <sch:tipsch>Средняя</sch:tipsch>
    <sch:coluch>1</sch:coluch>
    <sch:coluch2>1</sch:coluch2>
    <sch:1_coluch_1_4>1</sch:1_coluch_1_4>
    </Form></ISSExpFile>
     
  25. Anonymous

    Anonymous Guest