PHP Post Request внутри POST-запроса - PullRequest
       10

PHP Post Request внутри POST-запроса

1 голос
/ 20 февраля 2010

Есть контактная форма, текущее действие которой http://www.siteA.com/ContactInfo.php, она отправляет поля и значения. В ContactInfo.php я просто перехватываю значения и отправляю по электронной почте y@z.x

НО, внутри ContactInfo.php, мне нужно отправить те же данные в другое место назначения, в другой домен http://www.SiteB.com/Reg.aspx

Я попытался создать запрос HTTP POST для SiteB, но он не работает, даже с другим файлом на том же сайте.

У меня сейчас нет кода, но он похож на эту структуру.

<? php
   //ContactInfo.php
   // CATCTH VALUES and SEND EMAIL

   // CREATE Http POST REquest to another www.siteB.com/Reg.aspx
?>

Я попробовал использовать ... объект HttpRequest, cURL и другой ... я не могу вспомнить имя.

Ответы [ 3 ]

2 голосов
/ 20 февраля 2010

Вы можете попробовать что-то подобное, используя cURL (http://www.php.net/manual/en/curl.examples.php) ..

$sub_req_url = "http://www.siteB.com/Reg.aspx";

$ch = curl_init($sub_req_url);
$encoded = '';

// include GET as well as POST variables; your needs may vary.
foreach($_GET as $name => $value) {
  $encoded .= urlencode($name).'='.urlencode($value).'&';
}

foreach($_POST as $name => $value) {
  $encoded .= urlencode($name).'='.urlencode($value).'&';
}

// chop off last ampersand
$encoded = substr($encoded, 0, strlen($encoded)-1);

curl_setopt($ch, CURLOPT_POSTFIELDS,  $encoded);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_exec($ch);
curl_close($ch);

Shamly

1 голос
/ 20 февраля 2010

Я бы посоветовал вам попробовать Snoopy Class . Это действительно довольно просто:

<?php

  $vars = array("fname"=>"Jonathan","lname"=>"Sampson");
  $snoopy = new Snoopy();

  $snoopy->httpmethod = "POST";
  $snoopy->submit("http://www.siteB.com/Reg.aspx", $vars);

  # Use the following if you need to view the results
  # print $snoopy->results;

?>
0 голосов
/ 20 февраля 2010

Не видя ваш код, трудно сказать, в чем проблема.

Вопросы:

Является ли сайт B доменом, которым вы также владеете, или это третья сторона? Если это третьи лица, они могут выполнять проверку ботов и т. П., Что приведет к сбою вашего POST.

Сделали ли вы что-нибудь, чтобы подтвердить, что данные на самом деле отправляются в домен B?

Если домен B также находится под вашим контролем, я предполагаю, что они работают на одном веб-сервере - почему бы просто не записать логику в домен A Страница, которая делает все, что нужно, без необходимости отправки в домен B

...