整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          laravel簡單防止后臺表單重復提交的中間件

          laravel簡單防止后臺表單重復提交的中間件
          <?php
          
          namespace App\Http\Middleware;
          
          use App\Exceptions\InvalidRequestException;
          use Closure;
          use Illuminate\Support\Facades\Redis;
          
          class PreventDupSubmit
          {
              /**
               * 簡單的防止前端重復提交數據 導致的數據異常
               *
               * @param  \Illuminate\Http\Request $request
               * @param  \Closure $next
               * @return mixed
               */
              public function handle($request, Closure $next)
              {
          
                  $requestParams=$request->all();
                  $requestParams["adminId"]=getAdminUserId();
                  $requestParams["uri"]=$request->getUri();
                  ksort($requestParams);
                  $key=md5(serialize($requestParams));
                  $result=Redis::Connection("wms")->set('wms_' . $key, 1,"EX",5,"NX");
                  if(!$result){
                      throw new InvalidRequestException("請勿重復請求,請5秒后再發起請求");
                  }
                  $response=$next($request);
                  Redis::Connection("wms")->del('wms_' . $key);
                  return $response;
              }
          }

          用:



          單大師推薦搜索Q&A功能更新微信


          Q


          如何避免反饋提交數據,防止重復數據?

          A


          可以通過限制提交次數匿名訪問唯一性字段不許重復來實現。


          01. 限制提交次數


          點擊表單設置>>基礎設置>>填寫控制設置,可以通過微信ID、IP地址和同一設備來控制。



          02. 匿名訪問唯一


          當上訴填寫控制設置了每個微信賬號只能提交一次,且在微信或者小程序中填寫表單,則提交數據后將無法再次進入表單,即盡可訪問提交一次。



          ? 點擊體驗 ?

          https://biaodan100.com/web/formview/5ece02a1fc918f7ce713502e


          03. 字段不許重復


          單字段不許重復


          表單編輯>>選中字段>>字段屬性設置,可以通過比如姓名、手機號、證件號等字段的不許重復屬性設置來控制。


          Tips:單行文本、多行文本、日期、時間、姓名、電話、電子郵箱、證件號/卡號、網址字段均支持設置字段屬性為不許重復。


          多字段聯合不許重復


          表單編輯>>選中表單名稱>>表單屬性設置,設置多字段聯合不許重復來控制。只有滿足多個字段都唯一,才可提交表單。比如周報、每月收支賬單等,需要實現日期+姓名唯一,或者月份+店鋪名唯一等場景。


          Tips:多字段聯合不許重復屬于高級功能,需單獨開通

          左右滑動查看更多


          更多問題咨詢,直接給公眾號發消息,會有在線客服解答哦~~~

          不要驚訝,是真人!

          VC開發有一個基礎原則:*.jsp不可以直接訪問*.jsp文件。而所有的jsp必須先經過Servlet之后再跳轉到另外一個jsp頁面上。

          1.運行Token.java,會跳轉到input.jsp。此時sesssion增加屬性input_token存在

          import java.io.IOException;
          import java.util.Date;
          import javax.servlet.ServletException;
          import javax.servlet.annotation.WebServlet;
          import javax.servlet.http.HttpServlet;
          import javax.servlet.http.HttpServletRequest;
          import javax.servlet.http.HttpServletResponse;
          
          /**
           * Servlet implementation class InputServlet
           */
          @WebServlet(name="tokenServlet",urlPatterns={"/TokenServlet"})
          public class Token extends HttpServlet {
          	private static final long serialVersionUID=1L;
          
          	/**
          	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
          	 */
          	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          		request.getSession().setAttribute("input_token", new Date());
          		request.getRequestDispatcher("/input.jsp").forward(request, response);
          	}
          
          	/**
          	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
          	 */
          	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
          		doGet(request, response);
          	}
          }


          2.input.jsp

          <%@ page language="java" contentType="text/html; charset=UTF-8"
              pageEncoding="UTF-8"%>
          <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
          <html>
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
          <title>Input</title>
          </head>
          <body>
          <form action="InputServlet" method="post">
          	輸入信息:<input type="text" name="msg" id="msg">
          	<input type="submit" value="輸入">
          </form>
          </body>
          </html>


          3.在input.jsp輸入***后,提交,會跳轉到http://localhost/AWProject/InputServlet,同時控制臺顯示“表單提交:***”。此時session的input_token屬性被刪除。


          主站蜘蛛池模板: 亚洲日韩AV无码一区二区三区人| 亚洲国产一区在线观看| 一区二区三区精密机械| 极品少妇伦理一区二区| 精品无人区一区二区三区| 一区二区高清在线观看| 无码人妻精一区二区三区| 久久免费区一区二区三波多野| 国产一区二区视频免费| 亚洲狠狠狠一区二区三区| 亚洲色无码一区二区三区| 亚洲AV无码一区二区三区在线观看 | 福利电影一区二区| 国产成人久久精品区一区二区| 中文字幕一区二区日产乱码| 国产嫖妓一区二区三区无码| 偷拍激情视频一区二区三区| 国产波霸爆乳一区二区| 亚洲av区一区二区三| 国产在线一区二区三区av| 国产精品无码亚洲一区二区三区 | 久久影院亚洲一区| 四虎精品亚洲一区二区三区 | 日本欧洲视频一区| 中文字幕人妻无码一区二区三区 | 大香伊蕉日本一区二区| 国产精品福利一区二区| 人妻av无码一区二区三区| 日本免费一区二区久久人人澡| 日本精品高清一区二区| 亚洲人成网站18禁止一区| 亚洲第一区精品观看| 日本免费精品一区二区三区| 国产天堂在线一区二区三区 | 精品日韩一区二区| 日韩爆乳一区二区无码| 亚洲性日韩精品一区二区三区 | 国产一区二区三区国产精品| 亚洲bt加勒比一区二区| 国产精品小黄鸭一区二区三区| 极品尤物一区二区三区|