2010-09-28 18 views
0

我在很多網站和Web應用程序中都看到過這種行爲,但我無法找到「乾淨和標準」的方式來重現它:用戶填寫表單,提交它,然後,在驗證成功後,表單將重新加載一條消息,上面寫着「該項目已保存」。到目前爲止沒有問題,我不明白的是,如果特定頁面被重新加載,他們如何繼續顯示確認消息,但是當用戶轉到另一個頁面然後返回到原始頁面(包含表單的消息)時,消息現在不存在了。似乎沒有獲取或發佈的數據,所以我假設會使用會話變量或cookie,但他們如何知道何時保留以及何時取消設置?或者,也許我錯了,還有其他方法......請幫助我!在同一頁面中顯示錶單確認消息:最佳實踐

回答

1

我的猜測是他們會使用一個會話變量,在頁面被訪問的時候自行解除。所以如果他們試圖再次訪問它們,他們只是重定向。

+0

這並不能解釋當您重新加載頁面時仍然顯示消息的方式。如果您未設置會話變量,則不應再顯示該消息。 – Kupido 2010-09-28 09:06:05

+0

也許它使用來自用戶發送的HTTP請求標頭中的HTTP Referrer? – 2010-09-28 09:14:42

+0

據我所知,HTTP_REFERER變量不完全可靠,我錯了嗎?你能提供一些代碼嗎? – Kupido 2010-09-28 09:37:10

0

也許與窗體的頁面沒有任何「未設置」會話變量,但其他人呢?

+0

這將如何處理不同頁面中的多個表單(甚至是在同一頁面中)? – Kupido 2010-09-28 09:40:24

+0

對於每個表單驗證,會話變量不必是相同的。例如,您可以使用$ _SESSION ['registrationFormValidation']作爲註冊表單,$ _SESSION ['contactFormValidation']作爲聯繫表單。然後,您可以在聯繫頁面上取消第一個,反之亦然。 – Shikiryu 2010-09-28 09:46:50

+0

是的,這可能是一個解決方案,但它似乎不那麼「乾淨」... :) – Kupido 2010-09-28 10:03:41