Привет всем. Перейду сразу к делу. Есть 2 сервера. Назовем 1 сервер главным, а второй сторонним. На главном сервере существует регистрация. Требуется сделать на стороннем сервере подобную регистрацию только с пересылкой данных на главный сервер. Собственно такое уже сделано, но есть одно но- в некоторых случая можно узнать адрес главного сервера из окна баруезра, а заказчика это не устраивает - он требует полной конфиденциальности главного сервера. Было решено сделать следующее на стороннем сервере- создать прокси-скрипт который приняв на себя данные регистрации переслал бы их серверу через сокеты, вот только вопрос как это сделать наиболее оптимально ну или вообще как это сделать ?. Через форму регистрации на сторонний сервер посылается текстовые поля + загруженный фаил. метод POST. Вообщем вопрос в следующем как переслать полученный POST запрос через сокеты на др сервер. Спасибо.
Через cURL или сокеты. Моя симпафка сокетам, т.к. везде есть, а "курл" надо подключать и 50% вероятность, что он не стоит на сервере. Есть такая штука XML-RPC. Создана специально для обмена данными между удалёнными серверами. На один сервер посылается небольшое кол-во информации в виде XML, второй сервер принимает и отвечает (о удаче, о провале или какой-то информацией). Шлутся данные через сокеты. Из реализаций XML-RPC больше всего по душе эта: http://www.keithdevens.com/software/xmlrpc/ Она простая, без лишних сущностей (надклассов с типами, чёртовы любители ООП) и ваще.
Чтобы сделать, в первую очередь надо вынуть голову на свет божий. Написал же, дал ссылки на документацию, даже на готовую библиотеку ссылку дал.
так этож придется поставить на второй сервер эту библиотеку....а мне надо избежать данного варианта... мне надо сделать скрипт который сделал вышеописанное без изменения структуры другого сервера...
вообщем если кому-то понадобиться я нашел пример на php.net.... Код (Text): <?php $header = "POST /$RegistrationProcessorScript HTTP/1.0\r\n"; $header .= "Host: $RegistrationProcessorHost\r\n"; $header .= "Content-Type: multipart/form-data; boundary=$boundary\r\n"; foreach($_POST AS $index => $value){ $data .="--$boundary\r\n"; $data .= "Content-Disposition: form-data; name=\"".$index."\"\r\n"; $data .= "\r\n".$value."\r\n"; $data .="--$boundary\r\n"; } foreach($_FILES AS $fieldname => $fileinfo) { $data .= "--$boundary\r\n"; if ($fileinfo['name'] != '') { $content_file = join("", file($fileinfo['tmp_name'])); $data.="Content-Disposition: file; name=\"".$fieldname."\"; filename=\"".$fileinfo['name']."\"\r\n"; $data .= "Content-Type: ".$fileinfo['type']."\r\n\r\n"; $data .= "".$content_file."\r\n"; $data .="--$boundary\r\n"; } } $data .="--$boundary--\r\n"; $header .= "Content-length: " . strlen($data) . "\r\n\r\n"; $fp = @fsockopen($RegistrationProcessorHost, 80); if ($fp) { fwrite($fp,$header.$data); $response = ""; while(!feof($fp)) $response .= fgets($fp, 128); fclose($fp); header($response); } ?>