Запрос на публикацию PHP внутри запроса POST

Существует контактная форма, текущее действие которой http://www.siteA.com/ContactInfo.php, оно отправляет поля и значения. В ContactInfo.php я просто поймаю значения и отправлю и отправлю электронное письмо по адресу [email protected]

НО, внутри 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, а другой... я не могу запомнить имя.

Ответ 1

Вы можете попробовать что-то вроде этого, используя 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

Ответ 2

Я бы посоветовал вам попробовать 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;

?>

Ответ 3

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

Вопросы:

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

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

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