婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > ThinkPHP防止重復提交表單的方法實例分析

ThinkPHP防止重復提交表單的方法實例分析

熱門標簽:房產中介用的是什么外呼系統 遼寧ai電銷機器人價格 長沙做地圖標注公司 地圖標注專員怎么樣 電話機器人銷售主要負責什么 上海做外呼線路的通信公司 寧波外呼營銷系統 四川保險智能外呼系統供應商 福建銀行智能外呼系統價格

本文實例總結分析了ThinkPHP防止重復提交表單的方法。分享給大家供大家參考,具體如下:

為什么會有表單重復的坑

在開發中,如果一個新增或修改的表單,在后臺完成數據庫操作后我們設定的不是跳轉到其他頁面,還是返回本頁面,這時點擊瀏覽器的后退再提交或刷新頁面,會導致form表單重復提交,即這條記錄會被增加或修改兩次。

導致表單重復提交的原因是:第一次提交的表單會被緩存到內存中,直到頁面下次提交或頁面關閉或轉向其他頁面時才消失。在自調用返回時,內存中的數據依然在,這時頁面中的判斷提交的代碼依然可以檢測到提交的值,顧會產生重復提交的效果。

如何解決?

總結網上的解決辦法和自己的測試,可以用以下幾個辦法:

方法1:最簡單:頁面提交后轉到另一個頁面而不是本頁面,舉個栗子,比如你的頁面地址為

http://yourdomain.com/User/Index/login

則該頁面的表單action地址可以為另外的處理地址,如

form action="{:U('User/Index/check_login')}" method="post">

這樣報錯返回,或者用戶點擊回退按鈕,還是會回到上一個地址,不過這種情況也不保險。還要搭配方法2,一起比較保險

方法2:提交表單后提交按鈕變灰/隱藏提交按鈕

這種方式一般是結合方法1來做的,通過JS來動態監聽用戶的點擊動作,動態將按鈕屬性置成disabeld,即為灰色不可用。代碼如下:

HTML:

form action="{:U('User/Index/check_login')}" method="post">
  input type="text" name="username" value="" id="username" />
  input type="password" name="userpwd" id="userpwd" />
  input type="submit" name="login_btn" id="login_btn" value="登陸"/>
/form>

JS:

$().ready(function(){
   $("#login_btn").on('click',function(){
      $(this).attr('disabled',true);
   });
});

方法1+方法2 結合后,基本上90%以上的重復提交問題都能解決,但是大劉這里還是要說下第三種方法,即在服務端一勞永逸的解決這個問題

方法3:使用隱藏隨機TOKEN值的方法進行重復提交判斷

首先,在項目的functions.php中添加如下方法

//創建TOKEN
function createToken() {
  $code = chr(mt_rand(0xB0, 0xF7)) . chr(mt_rand(0xA1, 0xFE)) .    chr(mt_rand(0xB0, 0xF7)) . chr(mt_rand(0xA1, 0xFE)) . chr(mt_rand(0xB0, 0xF7)) . chr(mt_rand(0xA1, 0xFE));
  session('TOKEN', authcode($code));
}
//判斷TOKEN
function checkToken($token) {
  if ($token == session('TOKEN')) {
    session('TOKEN', NULL);
    return TRUE;
  } else {
   return FALSE;
  }
}
/* 加密TOKEN */
function authcode($str) {
  $key = "YOURKEY";
  $str = substr(md5($str), 8, 10);
  return md5($key . $str);
}

在表單頁面form中填入以下HTML代碼

HTML:

input type="hidden" name="TOKEN" value="{:session('TOKEN')}" />

在頁面展示前調用creatToken()方法生成token,在相應控制器POST請求中 使用 checkToken() 進行判斷是否重復提交

if(IS_POST)
{
$post_token = I('post.TOKEN');
 if(!checkToken($post_token)){
   $this->error('請不要重復提交頁面',U('User/Index/login'));
 }
}

基本上,這3個方法配合著使用,就能解決ThinkPHP開發中表單重復提交問題,當然,有同學說可以使用ThinkPHP的令牌環機制,這樣其實就更簡單了,TP會默認在表單中生成一個隱藏域,到時候判斷這個隱藏域是否存在以及和session中的值是否想的即可,原理和方法3是一樣的。

PS:今天終于把內容用簡書的markdown編輯器發出來了,果然markdown語法不是蓋的,整個排版都清爽了,不錯不錯。

更多關于thinkPHP相關內容感興趣的讀者可查看本站專題:《ThinkPHP入門教程》、《thinkPHP模板操作技巧總結》、《ThinkPHP常用方法總結》、《codeigniter入門教程》、《CI(CodeIgniter)框架進階教程》、《Zend FrameWork框架入門教程》及《PHP模板技術總結》。

希望本文所述對大家基于ThinkPHP框架的PHP程序設計有所幫助。

您可能感興趣的文章:
  • 實例講解PHP表單驗證功能
  • 實例講解PHP表單處理
  • php防止表單重復提交實例講解
  • php 提交表單 關閉layer彈窗iframe的實例講解
  • thinkPHP5 ajax提交表單操作實例分析
  • PHP用正則匹配form表單中所有元素的類型和屬性值實例代碼
  • 微信小程序 PHP后端form表單提交實例詳解
  • 實例講解PHP表單

標簽:佛山 宜春 常德 宿遷 工商登記 延安 深圳 澳門

巨人網絡通訊聲明:本文標題《ThinkPHP防止重復提交表單的方法實例分析》,本文關鍵詞  ThinkPHP,防止,重復,提交,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《ThinkPHP防止重復提交表單的方法實例分析》相關的同類信息!
  • 本頁收集關于ThinkPHP防止重復提交表單的方法實例分析的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美理论在线播放| bt欧美亚洲午夜电影天堂| 亚洲最大成人综合| 一区二区在线观看视频| 亚洲人成精品久久久久久| 中文字幕亚洲精品在线观看| 椎名由奈av一区二区三区| 自拍偷拍亚洲激情| 亚洲一二三专区| 天堂av在线一区| 久久99久国产精品黄毛片色诱| 国产一区二区主播在线| 成人av免费在线播放| 99精品视频一区二区三区| 91成人网在线| 欧美videos中文字幕| 国产日韩成人精品| 亚洲午夜电影在线观看| 日本欧美加勒比视频| 黄网站免费久久| av在线不卡观看免费观看| 欧美三级韩国三级日本三斤| 日韩免费一区二区| 亚洲国产精品传媒在线观看| 亚洲综合激情另类小说区| 日韩av电影免费观看高清完整版| 国产一区二区h| 94-欧美-setu| 日韩欧美在线综合网| 中文成人综合网| 丝袜美腿亚洲色图| av资源网一区| 日韩午夜电影av| 国产精品美女久久福利网站| 天天综合天天做天天综合| 国产在线不卡一区| 在线欧美小视频| xf在线a精品一区二区视频网站| 18涩涩午夜精品.www| 久久国产精品露脸对白| 色又黄又爽网站www久久| 精品久久久三级丝袜| 亚洲女同一区二区| 激情亚洲综合在线| 欧美日韩国产综合一区二区 | 综合分类小说区另类春色亚洲小说欧美| 亚洲精品亚洲人成人网 | 福利一区在线观看| 在线不卡免费欧美| 亚洲天堂精品视频| 国产.欧美.日韩| 欧美xingq一区二区| 亚洲午夜三级在线| 色婷婷综合久久久久中文 | 99久久久精品| 国产视频视频一区| 久久精品国产免费| 91精品麻豆日日躁夜夜躁| 亚洲免费观看在线视频| 福利电影一区二区| 久久久久97国产精华液好用吗| 日韩国产精品大片| 欧美日韩大陆在线| 亚洲免费在线看| 粉嫩aⅴ一区二区三区四区| 26uuu亚洲综合色| 奇米色一区二区| 91精品福利在线一区二区三区| 一区二区欧美在线观看| 欧美在线视频日韩| 亚洲尤物在线视频观看| 欧美性高清videossexo| 亚洲综合999| 欧美年轻男男videosbes| 午夜欧美大尺度福利影院在线看| 精品视频1区2区| 一区二区三区视频在线看| 色94色欧美sute亚洲13| 亚洲一区二区三区四区的| 欧美性受xxxx| 午夜电影久久久| 91精品国产乱码久久蜜臀| 奇米色一区二区| 久久久久九九视频| 99精品热视频| 午夜精品一区二区三区免费视频 | 伦理电影国产精品| 精品少妇一区二区三区免费观看 | 日韩中文字幕一区二区三区| 日韩一区二区在线看片| 韩日精品视频一区| 国产精品不卡在线| 欧美最新大片在线看| 免费在线观看日韩欧美| 久久久一区二区三区| 国模大尺度一区二区三区| 国产精品国产成人国产三级| 99综合电影在线视频| 亚洲小少妇裸体bbw| 久久丝袜美腿综合| 色猫猫国产区一区二在线视频| 五月天婷婷综合| 国产精品女人毛片| 91精品国产麻豆国产自产在线| 高清不卡一区二区在线| 亚州成人在线电影| 国产欧美日韩精品在线| 精品视频1区2区3区| 国产成人精品亚洲777人妖| 亚洲福利一区二区三区| 欧美高清在线一区二区| 69p69国产精品| 99国内精品久久| 黑人巨大精品欧美黑白配亚洲| 亚洲精选在线视频| 久久亚洲精精品中文字幕早川悠里| 91偷拍与自偷拍精品| 捆绑调教一区二区三区| 亚洲综合在线电影| 国产视频在线观看一区二区三区 | 国产精品久久久久久妇女6080 | 欧美高清在线一区二区| 制服丝袜亚洲色图| 色噜噜夜夜夜综合网| 丁香啪啪综合成人亚洲小说| 麻豆91小视频| 午夜精品在线视频一区| 亚洲精品免费在线播放| 欧美国产日韩精品免费观看| 精品粉嫩aⅴ一区二区三区四区| 91高清视频免费看| 91丨九色丨蝌蚪丨老版| 国产精品一区二区三区99| 久久国产精品一区二区| 麻豆国产精品官网| 日韩av电影天堂| 日韩国产成人精品| 喷水一区二区三区| 亚洲韩国一区二区三区| 伊人婷婷欧美激情| 亚洲一区二区欧美日韩| 亚洲另类春色校园小说| 一区二区三区日本| 亚洲免费三区一区二区| 亚洲激情av在线| 亚洲伦理在线精品| 一区二区三区在线影院| 亚洲一区二区三区小说| 亚洲自拍都市欧美小说| 亚洲成人你懂的| 午夜精品一区二区三区免费视频 | 欧美日韩不卡一区| 欧美影视一区在线| 91精品国产综合久久香蕉麻豆| 制服丝袜亚洲网站| 久久一夜天堂av一区二区三区| 久久精品一区四区| 欧美激情一区二区在线| 中文字幕日韩一区二区| 一二三区精品视频| 午夜精彩视频在线观看不卡| 日产国产高清一区二区三区| 免费成人小视频| 国产精品一区二区免费不卡| 91视频.com| 在线成人免费视频| 2014亚洲片线观看视频免费| 国产精品久久福利| 亚洲一区自拍偷拍| 久久99精品国产麻豆不卡| 国产a久久麻豆| 欧美亚洲自拍偷拍| 日韩精品一区二区三区四区| 国产午夜久久久久| 亚洲愉拍自拍另类高清精品| 久久国产精品第一页| 波波电影院一区二区三区| 欧美乱妇一区二区三区不卡视频| 日韩欧美国产wwwww| 国产精品网站在线观看| 日韩精品三区四区| www.亚洲国产| 日韩欧美一级二级| 最新国产成人在线观看| 日韩av网站在线观看| 99久久久国产精品免费蜜臀| 欧美一级在线免费| 亚洲人成在线观看一区二区| 久久激情综合网| 97国产一区二区| 久久久久久久久一| 亚洲成人综合网站| 成人av综合一区| 久久这里只有精品首页| 亚洲在线视频一区| av影院午夜一区| 久久久久高清精品| 毛片基地黄久久久久久天堂| 欧美少妇xxx| 亚洲欧美日韩国产一区二区三区|