2009-09-27 46 views
7

所以我在註冊頁面中有這個空的文本框。用戶輸入一些數據,點擊繼續,然後有一個確認頁面。如果數據不正確,用戶返回去糾正任何錯誤。但是,當他回去時,所有的文本框都是空的。所以我想到的第一件事就是將用戶數據存儲在Session中(我有一個User類,用於存儲所有這些數據,因此我將該類存儲在會話中)。當用戶返回時,我可以檢索數據。如何通過PHP設置文本框的值?

我做這樣的事情:

if($_SESSION['UserInfo']) 
{ 
    $user = $_SESSION['UserInfo']; 

    $firstName = $user->FirstName; 
    $lastName = $user->LastName; 
} 

我將如何把這些變量在一個文本框?

回答

21

要設置的值,你可以只回聲出value屬性裏面的內容:

<input type="text" name="firstname" value="<?php echo htmlentities($firstName); ?>" /> 
<input type="text" name="lastname" value="<?php echo htmlentities($lastName); ?>" /> 
+0

感謝它的工作。 – Carlo 2009-09-28 00:20:20

+1

+1只回答到目前爲止獲得逃脫權利;對其他人感到羞恥。雖然'htmlspecialchars()'同樣有效,'ENT_QUOTES'通常是prefaerable,儘管在這裏並不重要。 – bobince 2009-09-28 01:01:36

+0

他們沒有問過如何逃避它們......他們問如何把它放進文本框。此外......你怎麼看「當然你會想逃避它,但......」的意思? – SeanJA 2009-09-28 03:51:13

4

當然,你會想逃跑,但...

<input type="text" value="<?php echo $firstName ?>" /> 

,或者如果形式發佈,這將是更容易做到:

<input type="text" name="firstName" value="<?php echo $_POST['firstName'] ?>" /> 

罰款......即使它出這裏的問題的範圍是轉義版本:

<input type="text" name="firstName" value="<?php echo htmlentities($_POST['firstName']) ?>" /> 
+0

你可以合併一個'htmlentities()' – 2009-09-28 01:21:37

+0

的例子嗎?因爲那個投票下來? – SeanJA 2009-09-28 03:48:09

+0

+1你沒有配過 – mpen 2009-09-28 03:59:47

3

水木清華像

<input type="text" value="<?php echo $first_name;?>"> 

不要忘了ヶ輛逃脫()或不服類似。如果你不知道爲什麼 - 谷歌XSS。

+0

你可以合併一個'htmlentities()'的例子? – 2009-09-28 01:20:39

+0

認真?因爲那個投票下來? – SeanJA 2009-09-28 03:48:56