2012-10-25 52 views
0

我使用隱藏表單發送值。使用提交按鈕。哪個更快發送隱藏表單數據或從數據庫獲取數據

它像:

<form action="users.php?action=edit" method="POST"> 
<input type="hidden" name="first_name" value="Josh" size="20" maxlength="19"/> 
<input type="submit" name="done" value="Done"/> 
</form> 

而且我在未來的形式我創建使用這些值。我不知道哪個更好,像這樣做,還是從數據庫獲取數據。另外,哪個更安全?

+0

另一個選項會話另一個cookie。也最大長度和大小隱藏輸入它毫無意義 – 2012-10-25 08:58:17

+0

我會建議會議。表單可能被劫持,db有時可能會變慢(取決於檢索到的數據量,訪問者等)。 會議是我目前最喜歡的。在進程的最後一步之前,不需要保存/存儲任何數據到db。 – andrew

+0

當然,當你開始考慮縮放和webfarms時,會話是有問題的。 – podiluska

回答

2

速度是可變的。

更重要的問題是更安全:如果將信息存儲在表單上,​​可能會被惡意用戶更改。

永遠不要信任來自Web表單的任何數據 - 請始終檢查並驗證它。

我記得有一個關於早期網絡商店如何將價格存儲在表單隱藏字段上的故事,並且對銷售水平感到滿意,結果發現這些銷售額已經達到了很高的水平由於現場被不正當消費者干預而導致價格下降。

http://www.ethicalhacker.net/content/view/43/2/

0

獲取數據從數據庫更安全,因爲該數據不能被篡改。 如果你將它放在一個隱藏的字段中,它會顯示可以修改的php變量的值。

0

我想「Josh」是要編輯的用戶,只有登錄的「Josh」用戶可以做到這一點。如果您會毫不猶豫地向用戶顯示隱藏字段中的數據,則可以使用隱藏字段。

請注意,用戶可以篡改表單域中的值。用戶可以在HTTP請求中添加/更改的所有內容都需要在服務器上進行驗證(如果這是合理的值,如果用戶實際上有權編輯「Josh」等)。

在您的示例中,不是一個真正的理由,雖然使用了隱藏字段:

<form action="users.php?action=edit&first_name=Josh" method="POST"> 
<input type="submit" name="done" value="Done"/> 
</form> 

關於速度:對於小的數據,隱藏域的版本很可能會更快,因爲你避免整個往返到數據庫(連接,事務,斷開) 。 PHP不保留連接池,連接數據庫代價昂貴。

+0

推測OP將連接到數據庫無論如何更新值? – podiluska

0

我想它是從數據庫獲取數據 第一人可以操縱數據和secound我猜你的數據庫是本地主機或在同一網絡 - 這使得通過互聯網發送和安全更快!

相關問題