перенаправление POST запросов.

Olmer

Новичок
перенаправление POST запросов.

Здравствуйте.
Подскажите, пожалуйста, как можно реализовать следующую задачу:
есть сайт, на нем есть функция пополнения счета через еголд. Задача состоит в том, чтобы принимать ответ еголда о статусе платежа через скрипт-посредник, находящийся на другом хостинге. Т.е схема должна быть такая:

site1->через скрипт-редирект передает данные на мерчант e-gold.com. в поле "STATUS_URL стоит" значение "http://site2/status.php" скрипт status.php через сокеты передает параметры, полученные от сайта e-gold методом POST скрипту status.php на site1. Т.е site2 выступает в роли своеобразного посредника между e-gold и сайтом.

Собственно вопрос: возможно ли полностью перенаправить POST запрос на другой скрипт через сокеты?
Я не знаю как это реализовать, поэтому, принимал каждый параметр по отдельности и отправлял на нужный скрипт. Но мой код не работает(счет в системе на site1 не пополняется. Пожалуйста, подскажите, в чем ошибка, или подскажите, как это можно реализовать иначе. Возможно ли полсностью просто перенаправить POST запрос на другой скрипт, без разбора переменных в запросе?

Вот код скрипта - посредника status.php на site2(он должен принимать ответ e-gold.com и передавать его другому скрипту на site1, где происходит обработка):

PHP:
<?
  $PAYMENT_ID=$_POST['PAYMENT_ID'];
  $PAYEE_ACCOUNT=$_POST['PAYEE_ACCOUNT'];
  $PAYMENT_AMOUNT=$_POST['PAYMENT_AMOUNT'];
  $PAYMENT_UNITS=$_POST['PAYMENT_UNITS'];
  $PAYMENT_METAL_ID=$_POST['PAYMENT_METAL_ID'];
  $PAYMENT_BATCH_NUM=$_POST['PAYMENT_BATCH_NUM'];
  $PAYER_ACCOUNT=$_POST['PAYER_ACCOUNT'];
  $ACTUAL_PAYMENT_OUNCES=$_POST['ACTUAL_PAYMENT_OUNCES'];
  $USD_PER_OUNCE=$_POST['USD_PER_OUNCE'];
  $FEEWEIGHT=$_POST['FEEWEIGHT'];
  $TIMESTAMPGMT=$_POST['TIMESTAMPGMT'];

  $u = sprintf ('%d', $_POST['u']);
  $h = sprintf ('%d', $_POST['h']);
  $c = sprintf ('%d', $_POST['c']);
  $a = 'check';
  $V2_HASH=$_POST['V2_HASH'];

$data="PAYMENT_ID=".$PAYMENT_ID."&PAYEE_ACCOUNT=".$PAYEE_ACCOUNT."&PAYMENT_AMOUNT=".$PAYMENT_AMOUNT."&PAYMENT_UNITS=".$PAYMENT_UNITS."&PAYMENT_METAL_ID=".$PAYMENT_METAL_ID."&PAYMENT_BATCH_NUM=".$PAYMENT_BATCH_NUM."&PAYER_ACCOUNT=".$PAYER_ACCOUNT."&ACTUAL_PAYMENT_OUNCES=".$ACTUAL_PAYMENT_OUNCES."&USD_PER_OUNCE=".$USD_PER_OUNCE."&FEEWEIGHT=".$FEEWEIGHT."&TIMESTAMPGMT=".$TIMESTAMPGMT."&u=".$u."&h=".$h."&c=".$c."&a=".$a."&V2_HASH=".$V2_HASH."&addi=cb";

$fp = fsockopen("site1", 80, $errno, $errstr, 30);
$out = "POST /status.php HTTP/1.0\r\n";
$out .= "Host: site1\r\n";
$out .= "Referer: site1\r\n";
$out .= "User-Agent: Opera\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-Length: ".strlen($data)."\r\n\r\n";
$out .= $data."\r\n\r\n";
fputs($fp, $out);
fclose($fp);

  print '1';
  exit ();
?>
Заранее благодарен.

-~{}~ 23.04.08 17:52:

спасибо, уже сам нашел ошибку: код рабочий, просто из за бессонной ночи накосячил тут:

"Host: site1\r\n"; - тут забыл заменить значение и оставил localhost, чтоб ему убиццо об стену, вымазанную йадом=)

Остался только вопрос: можно ли полностью перенаправить данные полученные скриптом через POST запрос на другой скрипт, не зная заранее переменных, находящихся в нем, по тому же принципу(через сокеты)? Это бы существенно облегчило задачу.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
в HTTP и HTML нет понятия "перенаправить"
Есть редирект браузера, но это, как я понимаю, к теме не относится.

Можно сделать "proxy", т.е. скрипт, который получит запрос и отправит на 2й сайт запрос, полностью повторяющий полученный.
Делается несколькими строками на курле.
Можешь взять мой пакет gCurl, я там простой пример делал.

-~{}~ 24.04.08 00:42:

Olmer, вот
ветка с обсуждением пакета (на твое письмо)
 

dimagolov

Новичок
grigori, ну ты уже и в рот положил... почему мне удалось найти поиском ту тему, а топик стартеру нет?
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
dimagolov привык на прямой вопрос давать прямой ответ
исправлюсь :)
 
Сверху