有一个联系表单,当前操作为http://www.siteA.com/ContactInfo.php
,它会发送字段和值。
在ContactInfo.php中,我只是捕获值并发送并发送电子邮件至y@z.x
但是,在ContactInfo.php中,我需要将相同的数据发送到另一个目的地,在其他域http://www.SiteB.com/Reg.aspx
我已经尝试为SiteB创建一个http POST请求,但它不起作用,即使在同一站点中有另一个文件。
我现在没有代码,但它与此结构类似。
<? php
//ContactInfo.php
// CATCTH VALUES and SEND EMAIL
// CREATE Http POST REquest to another www.siteB.com/Reg.aspx
?>
我已经尝试使用... HttpRequest对象,cURL和另一个......我记不起名字了。
答案 0 :(得分:2)
你可以尝试使用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);
答案 1 :(得分:1)
我建议你试试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;
?>
答案 2 :(得分:0)
如果没有看到您的代码,很难说出问题所在。
问题:
网站B是您拥有的域名,还是第三方?如果它是第三方,他们可能正在运行机器人检查等会使你的POST失败。
您是否已采取任何措施确认数据实际上是否已发送到域B?
如果域B也在你的控制之下,我的猜测是它们在同一个Web服务器上运行 - 为什么不在逻辑域写入一个页面,它可以完成任何需要完成的事情而无需提交到域乙