PHP Post Request - 保留在同一页面上

时间:2013-05-03 18:23:02

标签: php post curl request

我在使用cURL发送PHP Post请求时遇到了一些麻烦。

代码应该做什么:使用发布数据转到http://www.example.com/index.php

代码的作用:它在我运行脚本的页面内加载www.example.com。如果我尝试使用该网站,我将收到404错误。

这是我的代码:

$url = 'https://www.example.com/index.php';

$fields = array(
   'info1'=>'par1',
   'info2'=>'par2'
);

$postvars='';
$sep='';
foreach($fields as $key=>$value) 
{ 
   $postvars.= $sep.urlencode($key).'='.urlencode($value); 
   $sep='&'; 
}


$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);

$result = curl_exec($ch);

curl_close($ch);

2 个答案:

答案 0 :(得分:0)

试试这个:

$ch = curl_init();

curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_POST,count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS,$postvars);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//Added this

$result = curl_exec($ch);

curl_close($ch);

答案 1 :(得分:0)

每次尝试从YOUR网站打开不存在的链接时,您都会看到404。

这是因为您的浏览器尝试打开yourwebsite.com/nicelink.php而不是example.com/nicelink.php

为什么会这样?

让我们看看你做了什么:
1)您打开yourwebsite.com/script.php
2)脚本从example.com加载数据,并在yourwebsite.com上下文中将其输出到您的浏览器 3)<a href="nicelink.php">nice link</a>的所有链接与您的浏览器当前打开的地址yourwebsite.com 无关


并使用http_build_query()

$postvars = http_build_query( $fields );

而不是:

$postvars='';
$sep='';
foreach($fields as $key=>$value) 
{ 
   $postvars.= $sep.urlencode($key).'='.urlencode($value); 
   $sep='&'; 
}