国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - ThinkPHP 防止表單重復提交的方法

ThinkPHP 防止表單重復提交的方法

2019-12-10 13:05PHP教程網 PHP教程

防止表單重復提交有很多種方法,其不外乎,客戶端腳本防止刷新,服務端token驗證等等,thinkphp內置了表單token驗證,可以方便的防止表單重復提交

然而有一種情況,是防止不了的:

用戶提交表單以后,點擊瀏覽器后退按鈕返回表單頁面,這個時候瀏覽器會直接從緩存中取出頁面,因此token驗證一定是通不過的。

網上有許多種辦法可以繞過這個問題,比如用location.replace()方法來替換當前歷史記錄,但是這樣仍然有瑕疵。極端的情況,若用戶在頁面間切換多次,那么多點幾次后退按鈕很可能又回到了上一個表單頁面。

解決辦法是在http頭中設置Cache-Control: no-cache, no-store。然而我嘗試了無論是在頁面head中添加 <meta http-equiv="Cache-Control" content="no-cache, no-store"> 還是在Action中輸出 header("Cache-control: no-cache, no-store") 都無效。

 

ThinkPHP 防止表單重復提交的方法

 

查找了很久,發現問題出在ThinkPHP的模板渲染機制上,打開 ThinkPHP/Lib/Think/Core/View.class.php 看第173行

  1. header("Cache-control: private");  //支持頁面回跳 

原來TP為了支持頁面回跳,強制在每個模板輸出之前都發送了一個Cache-control: private的頭,這可真是幫了倒忙了。

把這行注釋掉,刪除TP核心緩存,再試一次,發現HTTP響應頭成功改變了

 

ThinkPHP 防止表單重復提交的方法

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲精品久久久久久下一站 | 在线日韩一区二区 | 国内精品久久久久久中文字幕 | 国产成人av在线播放 | 伊人激情网 | 在线播放一区二区三区 | 国产成人精品一区二 | 一区中文字幕 | 日韩中文字幕一区二区 | 成人影音 | 成人a视频 | 99久久婷婷国产综合精品电影 | 精品一区电影 | 性色浪潮| 最近中文字幕免费 | 国产一区二区欧美 | 午夜视频在线观看一区二区三区 | 精精国产xxxx视频在线 | 在线中文av | 中文字幕一区日韩精品欧美 | 操操你 | 亚洲 中文 欧美 日韩 在线观看 | 国产一区精品视频 | 国产色 | 91小视频 | 欧美精品成人一区二区三区四区 | 欧美精品不卡 | 欧美日韩激情一区二区三区 | 久久最新 | 国产日韩一区二区三区 | 日本久久香蕉 | 久久久精品国产99久久精品芒果 | 不卡中文一区 | 四虎影音 | 隔壁老王国产在线精品 | 国产精品久久久久久中文字 | 成人在线免费看视频 | 免费观看电视在线高清视频 | 日本中文字幕在线视频 | 久久国产精品99久久久久久老狼 | 久久精品国产99国产 |