2010-01-24 53 views
0

當談到Web應用程序設計時,我最近一直在閱讀大量關於最佳實踐的文章。我的專長是PHP/MySQL。在爲我正在開發的應用程序創建MVC體系結構時,我總是遇到存儲無效表單提交內容的問題(以便用戶不必重新輸入數據,並且可以顯示有用的錯誤消息) 。表單提交無效 - 如何處理它們?

通常我已經解決了將它作爲序列化對象存儲在SESSION變量中的問題,但是我最近的閱讀告訴我會話很糟糕,並且從無狀態Web開發中消失​​。我想到了幾個備選方案:

  1. 將其存儲在數據庫中我會與有效輸入,但標記爲無效
  2. 在數據庫中的特定無效表單提交一個單獨的表存儲
  3. 將其存儲在一個文本文件

他們都有自己的缺點。

  1. 並非所有表單都會導致創建(單個)數據庫實體。
  2. 和3兩個看似相同的想法爲會話變量

你會怎麼推薦?

回答

0

如果表單是公開可用的,並且您沒有用戶認證,則在會話結束時您將丟失訪問者。

  • 所以SESSION是一個需要考慮的問題。
  • 如果您有用戶,則可以將其保存爲序列化對象database
  • 另一種是使用HTML5 local storage這是最好的方法,但只有少數瀏覽器支持它。
5

根本不存儲它,僅向用戶顯示錯誤消息和表單的另一個副本。使用您擁有的數據(在PHP中使用$ _POST/$ _ GET)以預先填寫之前輸入的數據。

0

1)如果您在循環或負載平衡方案中將應用程序分佈在兩臺或更多服務器上,則會出現會話問題,但是如果您沒有計劃將應用程序擴展到一臺服務器以上,則不會應用

2)您可以將數據在服務器和瀏覽器之間傳回Cookie。可能使用cookie數組將所有數據放在一起。通過這種方式,如果用戶在負載均衡場景中進行循環操作,那麼數據將隨之循環,狀態無關緊要。

0

看一看zend_form

它處理的數據填充你。你也可以自動驗證和過濾數據