Page1.php,page2.php,page3.php
在3名page1.php中的網頁,我有一些隱藏的值,例如「名」
提交page1.php後,它將轉到page2。
然後在使page2.php某個進程後,它應該需要自動提交到page3.php(其中page3.php是在另一個服務器)
最後,當我在page3.php打印$ _ POST變量,我需要獲得變量'名稱'
Page1.php,page2.php,page3.php
在3名page1.php中的網頁,我有一些隱藏的值,例如「名」
提交page1.php後,它將轉到page2。
然後在使page2.php某個進程後,它應該需要自動提交到page3.php(其中page3.php是在另一個服務器)
最後,當我在page3.php打印$ _ POST變量,我需要獲得變量'名稱'
你會想要看看sessions。
如果你需要他們在POST,試試這個:你想要去
$display = "";
$saveFields = array('one', 'two'); // whitelist of fields to add to the form hidden
foreach ($_POST as $key => $val) {
if (!empty($val) && in_array($key, $saveFields))
$display .= '<input type="hidden" name="'.$key.'" value="'.$val.'" />';
}
echo $display;
應該讓你。白名單只是確保那些不需要注入的隨機東西。
,你可以把它貼在session
<?php
session_start();
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
?>
,或者你可以把它們放入隱藏瓦爾上使page2.php如果有一種形式...
感謝您的回覆 但實際上第三頁'page3.php'是謊言在另一臺服務器 另外,我需要獲取參數,當我打印$ _POST – user310849 2011-06-01 21:21:14
@ user310849:該信息應該包括在您的原始問題。無論哪種方式,這個答案的第二部分仍然解決了你的問題:「如果它有一個表單,你可以將它們放在page2.php的隱藏變量中。」在頁面2上放置一個隱藏值的表單,然後將javascript POST放到頁面3上。 – webbiedave 2011-06-01 21:30:56
是的,我明白了。讓我知道沒有使用JavaScript(只使用PHP)我們可以做到這一點? – user310849 2011-06-01 21:48:32
(1)選項是添加隱藏也輸入第2頁。
(2)選擇是從第1頁的名字將值設置爲會話和使用它在第3頁
感謝您的回覆但實際上第三頁'page3.php'是謊言在另一臺服務器此外,我需要獲取參數,當我打印$ _POST – user310849 2011-06-01 21:25:44
有幾種解決方案:
在傳遞參數的GET參數使page2.php簡單的情況?名稱= ...或使用隱藏的表單字段是最好的解決方案
感謝您的回覆但實際上第三頁'page3.php'是位於另一臺服務器此外,我需要獲取參數,當我打印$ _POST – user310849 2011-06-01 21:25:22
這看起來非常簡單對我來說,一個頁面有一個叫做name
一個隱藏的價值。第2頁應檢索後$_POST['name']
並將其作爲隱藏字段在第2頁上打印。一旦你把它發佈到第3頁,你可以用相同的方式檢索它$_POST['name']
。
實際上,如果數據完全相同,並一直持續到第3頁,爲什麼你甚至需要它?你能不能在第3頁申報?
好吧,我讀到這裏的方式是,在你的第一頁上你有一個表單的UI。然後將表單提交給頁面2進行處理。處理完成後,如果願意,用戶可以重定向到另一個站點(或服務器,並不一定要有所作爲)。
如果我說得對,這是你應該做的;而不是使用header();函數(php),打印一個帶有隱藏表單的空白頁面,其中包含要發送的所有詳細信息,並使用javascript來模擬用戶「提交」表單。
< DIV風格= 「顯示:無;」>
<形式行動= 「https://mywebpage.com/myscript.php」 方法= POST>
<輸入類型=隱藏的名稱=」 key_1" 值= 「_1」>
<輸入類型=隱藏名稱= 「key_2」 值= 「_2」>
<輸入類型=隱藏的名稱= 「KEY_3」 值= 「VALUE_3」>
<輸入類型= submit id =「formButton」style =「visibility:hidden;」>
< SCRIPT LANGUAGE = 「JavaScript的」>
的document.getElementById( 「formButton」)。點擊()
</form>中
</DIV>
你是正確的。但讓我知道是否還有其他東西,即不使用JavaScript提交,提交page2.php並將其重定向到page3.php? – user310849 2011-06-01 22:17:15
PHP本身沒有選擇發送POST數據__並讓客戶端跟着它(不像ASP)。 javascript是我知道實際推送用戶到其他站點/服務器的唯一方式。您可以使用curl來獲取用戶將被重定向到的頁面,並單獨顯示該頁面,但這可能會導致某些鏈接失效。然而,curl是一種服務器端的方法,它會從另一個站點獲取頁面(/內容)。 – 2011-06-02 00:41:23
感謝您的回覆 但實際上在第三頁'page3.php'位於另一臺服務器 另外,我需要獲取參數,當我打印$ _POST – user310849 2011-06-01 21:19:22
那麼,只需將它們添加爲隱藏字段到您的窗體。只要知道表單數據很容易修改,那麼IE有人可能只是向page3.php發送數據,而不必通過page1和page2,因此您可能希望添加由兩個服務器以某種方式共享的唯一令牌。所以,只需將它們添加爲隱藏的輸入字段即可。 – 2011-06-01 21:27:53
我不清楚你的想法。請你解釋一下,我怎樣才能從page1.php到page3.php的後期價值? – user310849 2011-06-01 21:40:08