2010-09-21 76 views
0

未來如何將用戶重定向我有action="script1.php"所有變量與POST

在SCRIPT1我需要寫的所有數據到數據庫,並重定向到 script2.php HTML表單,但我需要發佈到SCRIPT1所有參數被髮送到腳本2。 mod_rewrite是在

如何使用PHP重定向使用所有數據通過POST?

,如果我不喜歡這個噁心的做法,但

<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript"> 
<!-- 
function Search(){ 
wpc_form.submit(); 
} 
// --> 
</script> 
</HEAD> 
<BODY onload='Search()'> 
<form name=wpc_form method="post" action="/script2/"> 
<?php 
foreach($_REQUEST as $name => $value) 
echo '<input type="hidden" name="'.$name.'" value="'.$value.'">' 
?> 

</form> 

回答

2

不可能。
但你不需要它。因爲你已經擁有了所有這些數據。從script2.php中的數據庫中讀取它

+0

SCRIPT2 IT服務不是我在SCRIPT1我寫數據到數據庫中,但還需要我那裏發送到SCRIPT2 – Alehandro 2010-09-21 05:24:10

+0

@Alehandro是什麼阻止從數據庫中獲取數據SCRIPT2? – NullUserException 2010-09-21 05:24:42

+0

script2(urlService)服務運行必要的邏輯在POST中傳輸一些數據(它不是我的服務,我沒有訪問它們) – Alehandro 2010-09-21 05:29:02

0

重定向不允許您這樣做,除非您在瀏覽器中運行自定義客戶端代碼以從響應消息正文中提取狀態以填充表單領域。這是高級用法,可能不是您真正想要做的。

如果你確實需要在你的表單之間傳輸狀態,那麼你可以使用會話來做到這一點。瀏覽器中的表單將無法訪問數據,但在服務器上運行的PHP腳本可以在請求之間存儲值。 Here是PHP會話教程的鏈接,可能對您有用。此方法通常用於維護請求之間的應用程序狀態並將其重定向至第三方服務,如OpenID提供程序等。

+0

謝謝理查德庫克。我知道這個問題中的一個會話是不適合的。 – Alehandro 2010-09-21 05:52:33

+0

然後可以選擇在重定向的URL中對參數進行編碼。然後表單可以通過JavaScript訪問參數並以這種方式填充表單。 – 2010-09-21 15:38:53

-1

可以使用cURL庫(或類似的)從本地腳本發送單獨的POST請求到外部服務。

// assemble data from your post here: 
$data = array('formfield' => 'data', 'otherfield' => 'otherdata'); 

// and then send it off somewhere else 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, 'http://somewhere.else'); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_exec($ch); 
+0

它沒有被重定向(( – Alehandro 2010-09-21 06:10:21

+0

我試過手動捲曲的例子,它不會重定向嗎? – Alehandro 2010-09-21 06:25:03

+0

對,它不會重定向,它是一個單獨的請求,你必須在腳本的其餘部分自己處理任何重定向 – tadamson 2010-09-21 06:52:38