2012-11-16 76 views
0

如果我有三個PHP頁面,讓我們給他們打電話one.php,two.php和three.php,我用這樣的第一頁上:

<form name = "one" action = "two.php" onsubmit="return validateForm();" method ="post"> 

我知道我現在可以使用我通過one.php在two.php中傳遞的變量...

我的問題是,我將如何使用three.php中one.php的變量?

我每次嘗試打電話給他們時都會收到「undefined index」錯誤,就像我在two.php中一樣。

非常感謝您的幫助!

編輯:我應該提到我也在使用Sessions。

在第二頁上,我做這樣的事情:

$ _SESSION [ '名'] = $ _ POST [ '名'];

它允許我將從第一頁收集的名稱傳遞給第二頁,但是當我在第三頁上嘗試這樣做時,它只是說「未定義索引」。

+0

你怎麼稱呼three.php,得到什麼? POST?包含在two.php中? – sglessard

+0

會議可能會有所幫助。在頁面之間共享數據。 –

+0

@Somy A - 我應該提到的是,我使用的會話。 – UndefinedReference

回答

0

$ _POST是每個請求您應該使用$ _SESSION或$ _GET將它們傳遞給第三個文件。

2

而不是使用後,你將需要使用$ _SESSION

因此,例如:

one.php

session_start(); 
$_SESSION["mypostvalue"] = $_POST["mypostvalue"]; 
$_SESSION["mypostvalue1"] = $_POST["mypostvalue1"]; 

three.php

session_start(); 
echo $_SESSION["mypostvalue"]; 
echo "<br />"; 
echo $_SESSION["mypostvalue1"]; 

然後,一旦你完成了會話數據,你需要像這樣擺脫它:

session_start(); 
$_SESSION = null; 
session_destory(); 

注意只有使用session_start()一次每頁,和之前的任何數據被髮送到瀏覽器,如HTML或空格。

+0

嗯,我應該提到第三頁是使用包含的類,而類是實際需要的變量。但是在課堂上回應會話卻什麼也不做。任何提示? – UndefinedReference

0

只要確保您的輸入元素命名正確。如果要在two.php中使用$_POST["myvar"],則one.php中的name屬性需要爲「myvar」。

<form action="two.php" method="post"> 
    <input type='text' value='test myvar' name='myvar' /> 
    <input type='submit' value='go to 2' /> 
</form> 

three.php使用變量從one.php,只是通過他們通過爲隱藏輸入。也就是說,回聲他們回到形式two.php

<form action="three.php" method="post"> 
    <input type='text' value='test var 2' name='myvar2' /> 

    <?php echo "<input type='hidden' name='myvar' value='" . $_POST["myvar"] . "' />"; ?> 

    <input type='submit' value='go to 3' /> 
</form> 
1

我明白,我現在可以用我獨自一人從通過在one.php的two.php變量...

不這樣。形式

成功的表單控件將提交它們的值two.php。然後您可以通過$_POST['name_of_control']訪問它們。

如果您生成表單控件(可能類型的隱藏)與PHP變量創建的值(確保逃脫他們抵禦XSS攻擊),那麼他們將出現在形式和提交。

我的問題是,我將如何使用three.php中one.php的變量?

這取決於瀏覽器如何到達three.php。您可以生成另一個表單並將這些值重新放入隱藏的輸入中。

+0

謝謝。我打算添加一些關於安全性的內容。 –