ThinkPHP 防止表单重复提交的方法

表单form中放置一个<input> 带有{$serviceToken}

Controller相应的方法初始化时为其assign一个随机值,同时将该值存入session

form submit到Controller时会带有当前的serviceToken,Controller对比该值与session中的是否一致,

如果二者一致,说明是第一次提交,处理业务,然后清空session;

如果二者不同,说明是重复提交,跳转。

异常:如果检测到参数异常,需要提醒重新输入,那么同样将serviceToken重新生成,并赋值到html和sesion。

时间: 2024-11-10 07:05:17

ThinkPHP 防止表单重复提交的方法的相关文章

php 解决表单重复提交实现方法介绍

重复提交是我们开发中会常碰到的一个问题,除了我们使用js来防止表单的重复提交,同时还可以使用php来防止重复提交哦. 例1  代码如下 复制代码 <?php/* * php中如何防止表单的重复提交 */session_start();if (empty($_SESSION['ip'])) {//第一次写入操作,判断是否记录了IP地址,以此知道是否要写入数据库    $_SESSION['ip'] = $_SERVER['REMOTE_ADDR']; //第一次写入,为后面刷新或后退的判断做个铺垫

防止表单重复提交的方法

1.在jsp页面的button添加相关js代码: <input type="button" value="提交" onclick="this.disabled=true;this.form.submit()"> 此方法缺点是用户可能禁用js,此方法就可能失效. 2.session的token机制 防止表单重复提交的方法

php 解决和避免form表单重复提交的方法

在提交表单的时候,可能遇到网速等导致页面突然加载变慢,用户重复地点击提交按钮,将在数据库产生多条数据,导致不可控情况. 比如下面的情况就会导致表单重复提交: 点击提交按钮两次. 点击刷新按钮. 使用浏览器后退按钮重复之前的操作,导致重复提交表单. 使用浏览器历史记录重复提交表单. 浏览器重复的HTTP请求. 网页被恶意刷新. 下面是几种解决的方法: 一:利用js设置按钮点击后变成灰色 $(document).ready(function(){ $(input:submit).click(){ s

常见表单重复提交问题整理及解决方法

常见表单重复提交问题整理及解决方法 一.常见的重复提交问题 a>点击提交按钮两次. b>点击刷新按钮. c>使用浏览器后退按钮重复之前的操作,导致重复提交表单. d>使用浏览器历史记录重复提交表单. e>浏览器重复的HTTP请求. 二.防止表单重复提交的方法 a>禁掉提交按钮.表单提交后disabled现在的按钮或者取消该按钮的点击事件或者默认事件.这种方法防止心急的用户多次点击按钮.但有个问题,如果在客户端把Javascript给禁止掉,这种方法就无效了,当然现代的w

避免表单重复提交的几种方法

表单重复提交是Web 应用中最常见.带来很多麻烦的一个问题,用户有时候会重复的点击提交按钮,会导致多次提交,产生重复数据, 那么如何避免Form表单多次提交呢?下面介绍防止表单重复提交的几种方法 一.有很多的应用场景都会遇到重复提交问题,比如: 1.点击提交按钮两次.2.点击刷新按钮.3.使用浏览器后退按钮重复之前的操作,导致重复提交表单.4.使用浏览器历史记录重复提交表单.5.浏览器重复的 HTTP 请求. 二.防止表单重复提交的方法 1.禁掉提交按钮 表单提交后使用 Javascript 使

php通过token验证表单重复提交

PHP防止重复提交表单 2016-11-08 轻松学PHP 我们提交表单的时候,不能忽视的一个限制是防止用户重复提交表单,因为有可能用户连续点击了提交按钮或者是攻击者恶意提交数据,那么我们在提交数据后的处理如修改或添加数据到数据库时就会惹上麻烦. 那么如何规避这中重复提交表单的现象出现呢?我们可以从很多方面入手,首先从前端做限制.前端JavaScript在按钮被点击一次后禁用,即disabled,这个方法简单的防止了多次点击提交按钮,但是缺点是如果用户禁用了javascript脚本则失效.第二,

如何防止表单重复提交

一.有很多的应用场景都会遇到重复提交问题,比如: 1.点击提交按钮两次.2.点击刷新按钮.3.使用浏览器后退按钮重复之前的操作,导致重复提交表单.4.使用浏览器历史记录重复提交表单.5.浏览器重复的 HTTP 请求. 二.防止表单重复提交的方法 1.禁掉提交按钮 表单提交后使用 Javascript 使提交按钮disable.这种方法防止心急的用户多次点击按钮.但有个问题,如果客户端把 Javascript 给禁止掉,这种方法就无效了. 2.Post/Redirect/Get 模式 在提交后执行

防止表单重复提交的几种策略

表单重复提交是在多用户Web应用中最常见.带来很多麻烦的一个问题.有很多的应用场景都会遇到重复提交问题,比如: 点击提交按钮两次. 点击刷新按钮. 使用浏览器后退按钮重复之前的操作,导致重复提交表单. 使用浏览器历史记录重复提交表单. 浏览器重复的HTTP请求. 几种防止表单重复提交的方法 禁掉提交按钮.表单提交后使用Javascript使提交按钮disable.这种方法防止心急的用户多次点击按钮.但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了. 我之前的文章曾说过用一些

js阻止form表单重复提交

防止表单重复提交的方法总体来说有两种,一种是在js中阻止重复提交:另一种是在后台利用token令牌实现,大致思路是生成一个随机码放到session和form表单的隐藏输入框中,提交表单时两者对比,表单处理完毕清空或者修改session中的token. 在js中处理简单易懂,同时能解决我现在所做的项目中的问题,目前暂用js处理,后期如有需要再研究token机制.代码如下: 1.表单提交后禁用提交按钮(在本项目中表单提交完成后,如果处理成功都把form表单关掉了) 1 /** 2 * form表单格