2012-02-27 119 views
1

我對這款產品有點麻煩,因爲它可能是最基本的。我有一個簡單形式的姓名,電子郵件,註釋等本身輸出到一個PHP頁面,但我想擁有它發送到第二個頁面的鏈接,例如:發送表單數據到一個頁面,然後另一個?

<label for="name">Name:</label><input type="text" name="name" size="20" /> 

都到了第二頁(second.php)與此代碼並打印出來就好了:

print "<div>Thank you, $name.</p></div>"; 

但是,如果我嘗試發送$名稱到第三頁(third.php)使用類似的代碼,它顯示是這樣的:

​​

隨着實際變異而不是存儲在$ name中的內容。

我覺得我錯過了一個小小的東西,但我不知道它是什麼。我用這個:

$name = $_POST['name']; 

要拿second.php,這要拿third.php:

print 'Click <a href="third.php? name=' . $name . '">here</a> to proceed.'; 

只是爲了看它是否會從second.php得到相同的信息,但我不認爲它是這樣工作的。還有什麼我應該在第三頁上做的?我有一種感覺,這是一個令人難以置信的微不足道的事情,但就我所知,我無法完全理解它。

+2

http是無狀態的,沒有理由page3應該獲得與第2頁相同的數據,而是發佈到第2頁而不是第3頁 - 如果要在 – 2012-02-27 03:34:30

+0

上傳遞變量,請參閱會話如果通過查詢傳遞數據字符串它應該工作正常。它看起來像變量替換不會發生。 third.php的內容是什麼?你使用單引號而不是雙引號('謝謝你$ name'和'謝謝你$ name')?在單引號內使用變量時,PHP不會自動執行變量替換。 – 2012-02-27 03:38:38

+0

使用你的方法,你需要在第三頁使用'$ name = $ _GET ['name']'not'$ name = $ _POST ['name']'。 – 2012-02-27 04:26:52

回答

1

你可以這樣做。

在聲明

$name = $_POST['name']; 

,你可以在頭用它來傳遞這個變量

if(isset($_POST['btnname'])) 
{ 
header('Location: second.php?name='.$name); 
} 

的在你的第二個PHP

您可以通過這種方式得到它

Thank you, <php echo $_GET['name']; ?> 

或if要將所有的網頁使用會話

$_SESSION['name'] = $_POST['name']; 

= d

0

您可以使用隱藏的輸入

<label for="name">Name:</label> 
<input type="hidden" name="name" value="<? echo $name; ?>" size="20" /> 
0

網站是無狀態的,這意味着該變量只能維持在服務器上的幾秒鐘,試試吧,然後將HTML渲染,並將其發送到客戶端瀏覽器。服務器內存然後被釋放以供其他客戶端使用。

您有幾種選擇:
1)使用隱藏的表單字段和打印(使用PHP)他們的名字隱藏的表單字段,因此,當他們再次發佈它被保存(如果他們再次發佈)。
2)會議
3)餅乾
4)地址打印出來(即page.php文件名=」 $名;。)

這一切都取決於你如何讓你的第三個頁面(從鏈接?表單?php重定向?)

+0

我正在使用方法4.讓我編輯上面所以你可以看到我的意思。 – Hydlide 2012-02-27 04:18:00

+0

使用PHP重定向似乎是最好的方法,但我似乎無法擺脫我之前遇到的問題,它只是說$名,而不是之前發送的內容。回到繪圖板我想... – Hydlide 2012-02-27 05:10:07

+0

(third.php?name =)爲什麼之間的空格?和名字? – 2012-02-27 11:03:56

0

您可以在第二頁的名稱保存,並重新設置$ _GET變量第三頁調用之前它是可用的。這是因爲這些變量只對那個特定的請求有效,並且當另一個請求發生時需要重新設置它們。

相關問題