2011-06-01 117 views
0

我有如何從第一頁到第三頁後的值,作爲後

Page1.php,page2.php,page3.php

在3名page1.php中的網頁,我有一些隱藏的值,例如「名」

提交page1.php後,它將轉到page2。

然後在使page2.php某個進程後,它應該需要自動提交到page3.php(其中page3.php是在另一個服務器)

最後,當我在page3.php打印$ _ POST變量,我需要獲得變量'名稱'

回答

3

你會想要看看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; 

應該讓你。白名單只是確保那些不需要注入的隨機東西。

+0

感謝您的回覆 但實際上在第三頁'page3.php'位於另一臺服務器 另外,我需要獲取參數,當我打印$ _POST – user310849 2011-06-01 21:19:22

+0

那麼,只需將它們添加爲隱藏字段到您的窗體。只要知道表單數據很容易修改,那麼IE有人可能只是向page3.php發送數據,而不必通過page1和page2,因此您可能希望添加由兩個服務器以某種方式共享的唯一令牌。所以,只需將它們添加爲隱藏的輸入字段即可。 – 2011-06-01 21:27:53

+0

我不清楚你的想法。請你解釋一下,我怎樣才能從page1.php到page3.php的後期價值? – user310849 2011-06-01 21:40:08

3

,你可以把它貼在session

<?php 
session_start(); 
if (!isset($_SESSION['count'])) { 
    $_SESSION['count'] = 0; 
} else { 
    $_SESSION['count']++; 
} 
?> 

,或者你可以把它們放入隱藏瓦爾上使page2.php如果有一種形式...

+0

感謝您的回覆 但實際上第三頁'page3.php'是謊言在另一臺服務器 另外,我需要獲取參數,當我打印$ _POST – user310849 2011-06-01 21:21:14

+0

@ user310849:該信息應該包括在您的原始問題。無論哪種方式,這個答案的第二部分仍然解決了你的問題:「如果它有一個表單,你可以將它們放在page2.php的隱藏變量中。」在頁面2上放置一個隱藏值的表單,然後將javascript POST放到頁面3上。 – webbiedave 2011-06-01 21:30:56

+0

是的,我明白了。讓我知道沒有使用JavaScript(只使用PHP)我們可以做到這一點? – user310849 2011-06-01 21:48:32

1

(1)選項是添加隱藏也輸入第2頁。

(2)選擇是從第1頁的名字將值設置爲會話和使用它在第3頁

+0

感謝您的回覆但實際上第三頁'page3.php'是謊言在另一臺服務器此外,我需要獲取參數,當我打印$ _POST – user310849 2011-06-01 21:25:44

0

有幾種解決方案:

  • PHP會議
  • 餅乾
  • 傳遞參數作爲GET/POST參數
  • 將數據存儲在數據庫中

在傳遞參數的GET參數使page2.php簡單的情況?名稱= ...或使用隱藏的表單字段是最好的解決方案

+0

感謝您的回覆但實際上第三頁'page3.php'是位於另一臺服務器此外,我需要獲取參數,當我打印$ _POST – user310849 2011-06-01 21:25:22

0

這看起來非常簡單對我來說,一個頁面有一個叫做name一個隱藏的價值。第2頁應檢索後$_POST['name']並將其作爲隱藏字段在第2頁上打印。一旦你把它發佈到第3頁,你可以用相同的方式檢索它$_POST['name']

實際上,如果數據完全相同,並一直持續到第3頁,爲什麼你甚至需要它?你能不能在第3頁申報?

0

好吧,我讀到這裏的方式是,在你的第一頁上你有一個表單的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>

+0

你是正確的。但讓我知道是否還有其他東西,即不使用JavaScript提交,提交page2.php並將其重定向到page3.php? – user310849 2011-06-01 22:17:15

+0

PHP本身沒有選擇發送POST數據__並讓客戶端跟着它(不像ASP)。 javascript是我知道實際推送用戶到其他站點/服務器的唯一方式。您可以使用curl來獲取用戶將被重定向到的頁面,並單獨顯示該頁面,但這可能會導致某些鏈接失效。然而,curl是一種服務器端的方法,它會從另一個站點獲取頁面(/內容)。 – 2011-06-02 00:41:23

相關問題