2013-12-09 32 views
0

我已經讀了很多的捲曲的問題就在這裏,沒有人似乎有我有同樣的問題。嫋嫋不正確重定向

我有一個形式設立提交以下材料:

if(isset($_POST['submitted_form']) && $_POST['submitted_form'] == "yes"){ 
    $ch = curl_init("https://www.pipelinedeals.com/web_lead"); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_REFERER, "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'].""); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, "developer_mode=".$_POST['developer_mode']."&thank_you_page=".$_POST['thank_you_page']."&w2lid=".$_POST['w2lid']."&assign_to_id=".$_POST['assign_to_id']."&lead[lead_source]=".$_POST['lead[lead_source]']."&lead[full_name]=".$_POST['lead[full_name]']."&lead[phone]=".$_POST['lead[phone]']."&lead[email]=".$_POST['lead[email]'].""); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); 
    curl_exec($ch); 
    curl_close($ch); 
} 

之前有人問我爲什麼用這樣一個令人費解的方法來發布數據,而不只是提交表單,那是因爲我想在將數據傳遞給PipelineDeals之前將其用於其他用途。

它是如此接近正常工作,我可以品嚐它。我的問題是,當我運行代碼「​​」時,它會繼續並完美地發佈數據。問題是它沒有正確執行重定向。

發生什麼是數據職位。 「​​」在地址欄左側,頁面上的「https://www.pipelinedeals.com/web_lead」負載的內容(和負載的方式,展示了收到的職位),然後在其「​​」負載的內容。這就像cURL拉入其他頁面的內容,而不是將用戶重定向到它。

有什麼建議嗎?

回答

1

這就像捲曲在另外一個頁面的內容拉動,而 不是將用戶重定向到它。

cURL實際上不會將用戶重定向到相關頁面。客戶的瀏覽器完全不知道cURL正在做什麼。就瀏覽器而言,它只是從您的服務器(它正在執行POST請求)從接收這些數據。

爲了解決這個問題,你可能希望通過創建一個隱藏的表單,然後通過JavaScript提交該表格。小例子:

<form id="pipeline" action="https://www.pipelinedeals.com/web_lead" method="post"> 
    <input type="hidden" name="w2lid" value="<?php echo $_POST['w2lid']; ?>"> 
    <!-- the rest of your POST vars --> 
</form> 

而且JS:

document.getElementById('pipeline').submit(); 
1

因爲這正是curl所做的。它抓住你的請求的輸出,然後你可以用它做一些奇特的事情,然後你使用這些信息來渲染你自己的頁面。

你是不是想找:標題( 「位置:http://www.example.com/」);/*重定向瀏覽器*/ http://php.net/manual/en/function.header.php

(當然是有捲曲可能在一起)

+0

如果我用頭,我不能發佈的數據PipelineDeals雖然可以嗎?我仍然可以將帖子捲起來,但用戶最終看到的內容將是該頁面的一個版本,就好像該帖子沒有發生過一樣? –

+0

@ FerdiaO'Brien標題重定向將獨立於cURL請求,因此沒有真正的方法將兩者聯繫在一起。 –

+0

當。感謝大家的信息,它看起來像回到了繪圖板。上面的建議似乎是實現我想要韋恩的最佳方式。 –