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

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

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

用戶提交表單以后,點(diǎn)擊瀏覽器后退按鈕返回表單頁(yè)面,這個(gè)時(shí)候?yàn)g覽器會(huì)直接從緩存中取出頁(yè)面,因此token驗(yàn)證一定是通不過的。

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

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

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

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

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

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

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

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

主站蜘蛛池模板: 性一区 | 国产视频一二三区 | 91视频三区 | 亚洲毛片在线观看 | 亚洲精品丝袜日韩 | 精品一区二区三区四区 | 亚洲精品一 | 国产精品一区二区在线播放 | 精品日韩电影 | 久久在线 | 亚洲第一网站 | 天堂va在线| 国产免费视频 | 爱爱综合网 | 久久精品国产久精国产 | 性天堂网| 精品av天堂毛片久久久借种 | 亚洲国产成人精品女人久久久 | 欧美a区 | 丁香久久| 91亚洲精品在线 | 99热视| 国产性生活一级片 | 国产日韩欧美另类 | 国产成人免费网站 | 精品欧美一区二区三区久久久小说 | 免费1区2区3区| 99这里只有精品视频 | 久久黄色网 | 日本福利在线观看 | 国产成人99久久亚洲综合精品 | 成人福利网站 | 一区二区三区日本 | 91最新在线视频 | 免费在线视频一区二区 | 国产精品美女久久久久久免费 | 日本福利片 | 成人综合视频在线观看 | 国产精品无码专区在线观看 | 精品网站999www | 深夜福利影院 |