簡體   English   中英

如何防止使用PHP cURL重定向

[英]How do I prevent to be redirected with PHP cURL

我正在開發一個表單,其中要求將收集的數據提交給第三方網站,形式為: http//www.domain.com/page?key = value&key2 = value2

我決定使用cURL,因為我還沒有找到讓我信服的替代品。

我正在運行的問題是,一旦提交表單,就會執行cURL,但我被重定向到我指定的域。 相反,我想將用戶重定向到我的域中的確認頁面而不是第三方網站。

以下是我正在使用的代碼示例:

$URL="otherserver.domain.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,"http://$URL"); 
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, "key=value2&key2=value2&key3=value3");
curl_exec($ch);
$info = curl_getinfo($ch);
curl_close ($ch);

如何防止被重定向到otherserver.domain.com?

如果您認為不是使用cURL,而是使用更好的方式將數據提交到第三方網站,請隨時告訴我。

謝謝大家

curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);

不會輸出結果

curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 0);

將忽略重定向(因此,當http://google.com/將您轉移到https://google.us/時,這將忽略重定向)

嘗試這個:

  <?php
$url = "http://***.."; 
$ch = curl_init($url);
$opts = array(CURLOPT_RETURNTRANSFER => 1,
          CURLOP_HEADER => 1,
          CURLOPT_FOLLOWLOCATION => 0,
          CURLOPT_POST => 1,
          CURLOPT_POSTFIELDS => "foo=ba"); 
curl_setopt_array($ch, $opts); 
echo curl_exec($ch);
?>

除了在接受的答案上提供的措施之外,如果您回應它,還要確保您正在逃避輸出。

例如,而不是:

$lastResponse = curl_exec( $ch );
echo $lastResponse;

采用:

$lastResponse = curl_exec( $ch );
echo htmlentities($lastResponse ,ENT_QUOTES);

這解決了我的問題,因為我得到的響應有一個JS重定向。

我知道這是一個古老的問題,但這是第一個在線的結果,所以希望這可以幫助我,因為它在我經過幾個小時的研究后在論壇上找到它時為我做了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM