cakephp中有沒有內建方法防止表單重複提交,該如何解決

來源:互聯網
上載者:User
cakephp中有沒有內建方法防止表單重複提交
如我做一個使用者註冊功能,點提交到資訊確認頁面,點提交,入庫(入庫時不在做資訊的校正了如:使用者名稱是否已存在,在進入資訊確認頁時,會做相應check)。
我在入庫完成後,點瀏覽器的後退按鈕會返回到資訊確認頁,這時在點擊提交,由於沒有做校正,那使用者的資訊就會重複入庫.

我只想問的cakephp內建方法.像令牌驗證這些方法我知道的.

由於接觸cake沒多久.希望瞭解的能具體說一下.

------解決方案--------------------
看看http://www.ibm.com/developerworks/cn/opensource/os-php-cake3/
這裡說了
淺談緩衝
雖然使用 requireAuth 保護操作有很明顯的優點,但是也有一些需要克服的缺點。大多數缺點都屬於 “緩衝問題”。
每當表單被 requireAuth 評估時,都會產生驗證密鑰。這意味著,如果一個使用者提交一個含有已用過的密鑰的表單,則該表單提交操作將被視為無效。在幾種情況下會出現這個問題,包括(但不僅限於)使用多個瀏覽器視窗、使用 Back 按鈕返回前一個頁面、瀏覽器緩衝、Proxy 伺服器緩衝等等。您可能會把這些問題看成是使用者錯誤,因此不予理會;您應該抵制誘惑,並著手處理無效的表單提交。

如果你使用security,在提交表單時,cakephp會自動將表單中的token和session的進行校正的,那你可以在你入庫後,將session中的token值unset一下.不論使用者以什麼方式返回到確認頁,在提交,cakephp會進行檢查的,檢查不通過就會復原,你可以自己寫個復原方法,進行提示.
要是清楚核心代碼.這個流程你就明白了.
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.