2017-04-18 22 views
1

我們需要將用戶重定向到URL並使用PHP CURL將一些數據發送到該URL(POST)。完全像用戶單擊HTML表單提交時使用POST方法。通過PHP CURL 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); 

但它不工作。

解決方案是什麼?

回答

1

因爲我發現,這是不可能只用PHP。

您可以使用PHP生成一個表單,並在onLoad中使用JS進行提交。

Here是更詳細的。

0

這對於後期的捲曲我的可行的解決方案:

$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);