四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

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

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

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

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

解決辦法是在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的模板渲染機(jī)制上,打開 Thinkphp/Lib/Think/Core/View.class.php 看第173行

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

原來TP為了支持頁面回跳,強(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)記有誤,請第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 男人亲女人下面的视频| 在线观看亚洲免费视频| 啊嗯啊嗯| 七年级下册英语第二单元作文| 大国医 电视剧| 纵情欲海电影| 木偶人| 蒙古小男孩唱哭全场| 洛克线| 小绵羊男星是谁| 山东教育电视台直播| 小学智力测试题100题| 视频三级| 九狐| 红电视剧演员表| 二年级合并综合算式题| 午夜魅影直播| 川子| 美娜个人资料简介| 豆包简历个人资料| 杰深斯坦森全部电影| 哗鬼住正隔篱| 拨萝卜电视剧视频歌高清在线观看大牛| 电影《埋葬巴斯托》| 爱情电影网aqdy| 向东海| 刘一秒攻心销售| the bodyguard| angelababy婚礼大作战| 盗墓笔记重启之极海听雷第二季| 网络谜踪 电影| 抖音网页抖音| 勿言推理 电视剧| 米卡| 中国文化信息协会素质文化专业委员会| 通灵之王| 端午给老板祝福简短句| trainspotting| 大明宫词演员表全部| 姐妹微电影| 李慧慧|