POST请求中的PHP Post请求

时间:2010-02-20 04:58:30

标签: php post curl httprequest

有一个联系表单,当前操作为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和另一个......我记不起名字了。

3 个答案:

答案 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);

Shamly

答案 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服务器上运行 - 为什么不在逻辑域写入一个页面,它可以完成任何需要完成的事情而无需提交到域乙