中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

ThinkPHP 防止表單重復(fù)提交的方法

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

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

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

解決辦法是在http頭中設(shè)置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") 都無效。

查找了很久,發(fā)現(xiàn)問題出在Thinkphp的模板渲染機制上,打開 Thinkphp/Lib/Think/Core/View.class.php 看第173行

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

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

把這行注釋掉,刪除TP核心緩存,再試一次,發(fā)現(xiàn)HTTP響應(yīng)頭成功改變了

php技術(shù)ThinkPHP 防止表單重復(fù)提交的方法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 蜜臀网站 | 欧美三级三级三级爽爽爽 | 亚洲精品电影网在线观看 | 色毛片 | 欧美日韩中文国产一区发布 | 麻豆changesxxx国产 | 国产精品精品久久久 | 亚洲欧美日韩精品久久亚洲区 | 国产传媒毛片精品视频第一次 | 久久久久综合 | 亚洲一区二区三区欧美 | 99精品久久久久久 | 日本久久精品 | 麻豆久久精品 | 成人精品一区二区三区中文字幕 | 午夜国产在线 | 久久久久久精 | 欧美成人在线免费 | 国产成人自拍一区 | 狠狠天天 | 色爽女 | 亚州精品天堂中文字幕 | 精品视频一区二区三区在线观看 | 中文字幕乱码一区二区三区 | 精品一区二区三区四区在线 | 亚洲精品成人网 | 中文字幕av一区 | 国产欧美日韩在线一区 | 黄色片免费在线观看 | 欧美精品在线一区 | 少妇特黄a一区二区三区88av | 在线观看中文视频 | 日韩人体在线 | 中文字幕人成乱码在线观看 | 亚洲综合色自拍一区 | 免费看一级毛片 | h视频免费在线观看 | 精品久久久精品 | 亚洲国产精品久久久久秋霞不卡 | 剑来高清在线观看 | 天堂久|