然而有一種情況,是防止不了的:
用戶提交表單以後,點擊瀏覽器後退按鈕返回表單頁面,這個時候瀏覽器會直接從快取中取出頁面,因此token驗證一定是通不過的。
網上有許多種辦法可以繞過這個問題,例如用location.replace()方法來替換當前歷史記錄,但是這樣仍然有瑕疵。極端的情況,若使用者在頁間切換多次,那麼多點幾次後退按鈕很可能又回到了上一個表單頁面。
解決方法是在http頭中設定Cache-Control: no-cache, no-store。然而我嘗試了無論是在頁面head中添加
查找了很久,發現問題出在ThinkPHP的模板渲染機制上,打開ThinkPHP/ Lib/Think/Core/View.class.php 看第173行
header( "Cache-control: private" );
|
以上就介紹了thinkpad s230u twist ThinkPHP 防止表單重複提交的方法,包括了thinkpad s230u twist方面的內容,希望對PHP教程有興趣的朋友有所幫助。