发送cURL帖子就像表格帖子一样收到

时间:2010-08-15 04:52:24

标签: php curl

我正在尝试使用PHP cURL在表单中发送简单条目,因此条目所使用的远程服务器以与从表单发送的方式完全相同的方式接收它们。到目前为止,远程服务器接受来自表单的帖子,但不接受此PHP代码发送的帖子。 fopen和fsockopen等被我使用的主机(Yahoo)设置为关闭,所以cURL似乎是最好的选择。

$URL="http://remote_server.cgi";
$useragent = 'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.8) Gecko/20100722 Ant.com Toolbar 2.0.1 Firefox/3.6.8 ( .NET CLR 3.5.30729)   AutoPager/0.6.1.22';
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, $useragent);
curl_setopt($ch, CURLOPT_URL, $URL); 
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $_POST);
curl_exec ($ch);    
curl_close ($ch);

远程服务器在以这种方式发送时不接受条目。

可以采取哪些措施来收到与表格发送的条目相同的内容?

 FORM action="http://remote_server.cgi" method="POST"

2 个答案:

答案 0 :(得分:1)

执行此IMO的最佳方法是使用HTTP代理检查工作请求。 Fiddler,Charles和Firebug都会做到这一点。查看工作提交中包含的所有标头,以查看可能缺少的内容。

答案 1 :(得分:0)

您可能错过了引用并从表单中添加了标题 通常他们只检查这两个

   $headers[]='Content-type: application/x-www-form-urlencoded';
   $referer="Form url goes here";
   curl_setopt($process, CURLOPT_HTTPHEADER, $headers); 
   curl_setopt($s,CURLOPT_REFERER, $referer);