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

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

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

用戶提交表單以后,點擊瀏覽器后退按鈕返回表單頁面,這個時候瀏覽器會直接從緩存中取出頁面,因此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/Lib/Think/Core/View.class.php 看第173行

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

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

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

php技術ThinkPHP 防止表單重復提交的方法,轉載需保留來源!

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

主站蜘蛛池模板: 张振忠| 秀人网模特安然maleah简介| 春风不问路| 鸣鸟不飞oad| 新亮剑40集免费观看完整版高清| 陈一龙是哪部电视剧| 小泽电影| 快播电影网| 穆图| 中央6套| ab变频器中文说明书| 小妖怪的夏天| 搜狐视频官网| 公共频道| 小学道德与法治课程标准2023版| 女同性激烈床戏舌吻戏| 蛇魔女大闹都市| 帕米尔医生电视剧全集免费观看 | 我家大师兄太逆天了| 安全管理论文| 白洁少妇掀起裙子呻吟声视频| 我的世界,视频| 玉林电视台| 戏王之王演员表| 金酸梅奖| 阿尔法电影| 绝对权力全集免费观看| 一千零一夜凯瑟林| 清理垃圾360清理垃圾大师| x档案第二季| 五年级上册口算题| 洛可希佛帝| 9号房间| 倒带简谱| 定型枕什么时候能给宝宝用| 金雪贤| 系统解剖学题库及答案| 眼皮下垂手术费用多少钱| 阿波罗18号| 实验室火灾报警电铃响时应当| 挂耳染发图片大全|