通过PHP CURL发布数据并重定向用户

通过PHP CURL发布数据并重定向用户,php,redirect,curl,post,submit,Php,Redirect,Curl,Post,Submit,我们需要将用户重定向到一个URL,并使用PHP CURL将一些数据发送到该URL(POST)。就像用户单击HTML表单submit with POST方法一样 我们的代码是 $data=array("Token"=>"test2","RedirectURL"=>"test1"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://sep.shaparak.ir/Payment.aspx'); curl_setopt

我们需要将用户重定向到一个URL,并使用PHP CURL将一些数据发送到该URL(POST)。就像用户单击HTML表单submit with POST方法一样

我们的代码是

$data=array("Token"=>"test2","RedirectURL"=>"test1");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://sep.shaparak.ir/Payment.aspx');  
curl_setopt($ch, CURLOPT_REFERER, 'https://sep.shaparak.ir/Payment.aspx'); 
curl_setopt($ch, CURLOPT_HEADER, false);  
curl_setopt($ch, CURLOPT_POST, 1);  
curl_setopt($ch, CURLOPT_VERBOSE, false);  
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);  
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);  
curl_setopt($ch, CURLOPT_POSTREDIR, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);  
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_exec($ch);
但它不起作用


解决方案是什么?

这是我针对带卷曲的post的可行解决方案:

$postdata = "email=".$username."&pass=".$password; 
$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, sizeof($postdata));
curl_setopt($ch,CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
$result = curl_exec ($ch);
curl_close ($ch);
如果上述方法不起作用,有另一种解决方案:

$ch = curl_init();
curl_setopt($ch, CURLOPT_VERBOSE, false);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
$result = curl_exec ($ch);
curl_close ($ch);

正如我发现的,仅仅使用PHP是不可能的

您可以使用PHP生成一个表单,并在onLoad中使用JS提交该表单

更详细