Ситуация: Есть 2 сайта с одинаковыми БД. Только один выступает как клиент, а второй как сервер на котором копится инфа со всех клиентов. Проблема в следующем: Как написать скрипт который передавал данные через POST запрос на сервер. Читал мануалы всякие ниче не работает :-( P L E A S E H E E E E E L P !
Если есть нужда передавать данные ИМЕННО POST, то копай в сторону cURL или сокетов. Обычно же хватает и GET
А с GET'ом копать отсюда и до полного просветления в мозге Ето запрос вида http://твой_сайт/твоя_страница?парам1=чтото1&парам2=чтото2... Если надо обратиться к серверу, передать какието данные и получить какойто ответ, то проще всего это сделать через $result = file_get_contents('http://............');
olo У меня такая вещь: Выбираю данные, генерю из них XML файл, потом этот файл присваиваю переменной и надо отправить по адресу скрипта-приемника. НАДО чтобы этот скрипт-приемник принял этот XML и засунул его в БД. Этот приемник я написал(он рабочий). осталось чтобы до него доходили данные.
Если у тебя данные не будут превышать 1кб, то можеш их смело передавать через GET, а если больше, то конечно POST GET'ом используй чтото типа http://страница?xml=твой_хмл
реализация post через сокеты PHP: function post($url, $content, $callBack = '' ) { $res = ''; $fp = fsockopen ($url, 80, $errno, $errstr, 30); if (!$fp){ die("$errstr ($errno)\n"); } else { $request = "POST / HTTP/1.1\r\n" . "Host: {$host}\r\n" . "Content-Type: application/x-www-form-urlencoded\r\n" . "Content-Length: ".strlen($content) . "\r\n\r\n" . $content; fputs($fp, $request); while( !feof($fp) ) if( $callBack != '') $callBack(fgets($fp,8192)); else $res .= fgets($fp,8192); } if( $callBack != '' ) return 1 ; else return $res ; } можно использовать callback функцию для обработки данные порциями. да, и $host нужно определить )
Как использовать 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); В чем может быть проблема ???
не помогает!!! ошибка тогда: 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
Отлично! Получилось! Правда вылезла еще одна, НО другая: Не удается отобразить страницу XML Не удается просмотреть ввод XML с использованием списка стилей XSL. исправьте ошибку... Это как?
Sabbath, вероятно, тебе возвращается что то в виде XML данных со связанным XSL — который он найти не может....
кажись понял. тег не может начинаться с цыфры... ругань начинается со строки <sch:1_coluch_1_4>1</sch:1_coluch_1_4> ------------------------^
ругается на 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>