Запрос на публикацию 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, которая делает все, что нужно, без необходимости отправлять в домен В?