学习
实践
活动
专区
工具
TVP
写文章

JavaWeb防止表单重复提交的几种方式

) 用户提交表单后,点击浏览器的【后退】按钮回退到表单页面后进行再次提交 二、防止防止表单重复提交的方式 1、利用JavaScript防止表单重复提交 (1)、用JavaScript控制Form表单只能提交一次 ,不管验证输入正确与否,提交后均刷新验证码。 (5)、提交后重定向到一个提交成功的页面 表单提交后跳转到另外一个成功页面。这样可以避免用户按F5导致的重复提交,浏览器也不会出现表单重复提交的警告,以及消除按浏览器前进和后退按导致的同样问题。 与此同时将token放到页面的隐藏input,发给浏览器。用户页面上提交时带着这个token一块提交到服务端,服务端通过比对token的值。 (7)、cookie记录表单提交的状态 使用Cookie记录表单提交的状态,根据其状态可以检查是否已经提交过表单

33320
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    js对象(BOM部分DOM部分)

    警告警告框经常用于确保用户可以得到某些信息。 当警告框出现后,用户需要点击确定按钮才能继续进行操作。 语法: alert("你看到了吗?") ; 确认框(了解即可) 确认框用于使用户可以验证或者接受某些信息。 当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。 如果用户点击确认,那么返回值为 true。 语法: prompt("请在下方输入","你的答案") 计时相关 通过使用 JavaScript,我们可以一定时间间隔之后来执行代码,而不是函数被调用后立即执行。我们称之为计时事件。 假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。 setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证. onchange 域的内容被改变。

    14920

    前端之BOM和DOM

    警告警告框经常用于确保用户可以得到某些消息。 当警告框出现后,用户需要点击确定按钮才能继续操作。 语法: alert("系统错误"); 确认框 确认框用于使用户可以验证或者接受某些消息。 语法: prompt("请在下方输入","你的答案") 计时相关 通过使用JavaScript,我们可以一定时间间隔之后来执行代码,而不是函数被调用后立即执行。我们称之为计时事件。 假如你希望取消这个setTimeout(),你可以使用这个变量名来指定它。 setTimeout()的第一个参数是含有Javascript语句的字符串。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证. onchange 域的内容被改变。 onselect 文本框的文本被选中时发生。 onsubmit 确认按钮被点击,使用的对象是form。

    70550

    JavaScript 表单验证

    JavaScript 表单验证 JavaScript 可用来在数据被送往服务器前对 HTML 表单的这些输入数据进行验证表单数据经常需要使用 JavaScript验证其正确性: 验证表单数据是否为空? 验证输入是否是一个正确的email地址? 验证日期是否输入正确? 验证表单输入内容是否为数字型? ---- 必填(或必选)项目 下面的函数用来检查用户是否已填写表单的必填(或必选)项目。 假如必填或必选项为空,那么警告框会弹出,并且函数的返回值为 false,否则函数的返回值则为 true(意味着数据没有问题): function validateForm() { var x=document.forms myForm"]["fname"].value; if (x==null || x=="") { alert("姓必须填写"); return false; } } 以上函数

    21430

    js2

    警告警告框经常用于确保用户可以得到某些信息。 当警告框出现后,用户需要点击确定按钮才能继续进行操作。 语法: alert("你看到了吗?") ; 确认框(了解即可) 确认框用于使用户可以验证或者接受某些信息。 当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。 如果用户点击确认,那么返回值为 true。 语法: prompt("请在下方输入","你的答案") 计时相关 通过使用 JavaScript,我们可以一定时间间隔之后来执行代码,而不是函数被调用后立即执行。我们称之为计时事件。 假如你希望取消这个 setTimeout(),你可以使用这个变量名来指定它。 setTimeout() 的第一个参数是含有 JavaScript 语句的字符串。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证. onchange 域的内容被改变。

    88110

    JavaWeb day3 JavaScript入门

    JavaScript引入方式有两种: 内部脚本:将 JS代码定义HTML页面 外部脚本:将 JS代码定义在外部 JS文件,然后引入到 HTML页面 2.1 内部脚本 HTML JavaScript if (count == 3) { alert(count); } 3.2 输出语句 js 可以通过以下方式进行内容的输出,只不过不同的语句输出到的位置不同 使用 window.alert( :全局变量 { var age = 20; } alert(age); // 代码块定义的age 变量,代码块外边还可以使用 变量可以重复定义 { var age = 20; return true; } 8,表单验证案例 8.1 需求 有如下注册页面,对表单进行校验,如果输入的用户名、密码、手机号符合规则,则允许提交;如果不符合规则,则不允许提交。 表单校验案例的规则是我们进行一系列的判断来实现的,现在学习了正则对象后,就可以使用正则对象来改进这个案例。

    5020

    前端学习笔记之BOM和DOM

    警告警告框经常用于确保用户可以得到某些信息。 当警告框出现后,用户需要点击确定按钮才能继续进行操作。 语法: alert("你看到了吗?") ; 确认框(了解即可) 确认框用于使用户可以验证或者接受某些信息。 当确认框出现后,用户需要点击确定或者取消按钮才能继续进行操作。 如果用户点击确认,那么返回值为 true。 语法: prompt("请在下方输入","你的答案") 计时相关 通过使用 JavaScript,我们可以一定时间间隔之后来执行代码,而不是函数被调用后立即执行。我们称之为计时事件。 应用场景:用于表单验证,用户离开某个输入框时,代表已经输入完了,我们可以对它进行验证. onchange 域的内容被改变。 onselect 文本框的文本被选中时发生。 onsubmit 确认按钮被点击,使用的对象是form。

    37730

    JavaWeb day3 JavsScript 入门

    JavaScript引入方式有两种: 内部脚本:将 JS代码定义HTML页面 外部脚本:将 JS代码定义在外部 JS文件,然后引入到 HTML页面 2.1 内部脚本 HTML JavaScript if (count == 3) { alert(count); } 3.2 输出语句 js 可以通过以下方式进行内容的输出,只不过不同的语句输出到的位置不同 使用 window.alert 有以下地方和其他语言不一样 作用域:全局变量 { var age = 20; } alert(age); // 代码块定义的age 变量,代码块外边还可以使用 变量可以重复定义 return true; } 8,表单验证案例 8.1 需求 图片 有如下注册页面,对表单进行校验,如果输入的用户名、密码、手机号符合规则,则允许提交;如果不符合规则,则不允许提交。 表单校验案例的规则是我们进行一系列的判断来实现的,现在学习了正则对象后,就可以使用正则对象来改进这个案例。

    8410

    前端-javascript简写技巧

    申明多个变量时: let x;let y;letmz = 3; 可以简写为: let x, y, z=3; 1.4 if 语句 使用 if 进行基本判断时,可以省略赋值运算符。 这样可以确保代码以单个语句的形式进行求值。 ? 简写为: ? 2. 6 默认参数值 可以使用 if 语句来定义函数参数的默认值。ES6 规定了可以函数声明定义默认值。 ? 简写为: ? 其它一些语言则会发出警告或错误。要执行参数分配,可以使用if语句抛出未定义的错误,或者可以利用“强制参数”。 ? 简写为: ? 请考虑下面这个验证函数的简化示例: ? 上面的函数完美的完成验证工作。但是当有很多表单,则需要应用验证,此时会有不同的字段和规则。如果可以构建一个在运行时配置的通用验证函数,会是一个好选择。 ? 现在有了这个验证函数,我们就可以在所有窗体重用,而无需为每个窗体编写自定义验证函数。 2.13 双位操作符 位操作符是 JavaScript 初级教程的基本知识点,但是我们却不常使用位操作符。

    40230

    防止用户将表单重复提交的方法 原

    表单重复提交是多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如: 点击提交按钮两次。 点击刷新按钮。 使用浏览器后退按钮重复之前的操作,导致重复提交表单使用浏览器历史记录重复提交表单。 浏览器重复的HTTP请求。   几种防止表单重复提交的方法 1.禁掉提交按钮。 表单提交后使用JavaScript使提交按钮disable。这种方法防止心急的用户多次点击按钮。但有个问题,如果客户端把Javascript给禁止掉,这种方法就无效了。    这能避免用户按F5导致的重复提交,而其也不会出现浏览器表单重复提交的警告,也能消除按浏览器前进和后退按导致的同样问题。 3.session存放一个特殊标志。 当表单页面被请求时,生成一个特殊的字符标志串,存在session,同时放在表单的隐藏域里。接受处理表单数据时,检查标识字串是否存在,并立即从session删除它,然后正常处理数据。

    67220

    JavaScript 第一天

    JavaScript 基础第一天 JavaScript是一种运行在客户端(浏览器)的编程语言,实现人机交互效果 网页特效 (监听用户的一些行为让网页作出对应的反馈) 表单验证 (针对表单数据的合法性进行判断 : 规定了js基础语法核心知识 比如:变量、分支语句、循环语句、对象等等 DOM 操作文档,比如对页面元素进行移动、大小、添加删除等操作 BOM 操作浏览器,比如页面弹窗,检测窗口宽度、存储数据到浏览器等等 (回车)会被识别成结束符 ,所以一个完整的语句,不要手动换行 因此实际开发中有许多人主张书写 JavaScript 代码时省略结束符 但为了风格统一,要写结束符就每句都写,要么每句都不写(按照团队要求 let var 声明: 可以先使用 声明 (不合理) var 声明过的变量可以重复声明(不合理) 比如变量提升、全局变量、没有块级作用域等等 数组: 数组(Array)是一种可以按顺序保存多个数据 坑: 使用表单、prompt 获取过来的数据默认是字符串类型的,此时就不能直接简单的进行加法运算 此时需要转换变量的数据类型, 就是把一种数据类型的变量转换成我们需要的数据类型 console.log(

    11020

    Jquery 实现表单提交按钮变灰,防止多次点击提交重复数据

    表单提交时候我们应该控制提交按钮,不能点击多次进行数据的重复提交。要不然就会有冗余的重复的数据系统,造成系统出现数据垃圾。 后台代码控制表单提交有一个好的办法就是使用session, 具体可以参考下面这篇博文: JavaWeb学习总结(十三)——使用Session防止表单重复提交 http://www.cnblogs.com /xdp-gacl/p/3859416.html 其实后台控制表单重复提交的原理: (1)表单提交页面生成一个唯一的token;token可以保存在session。 (若使用了缓存,也可以保存在缓存) (2)提交的时候验证,后台首先验证token,验证通过,才可以进行提交操作; (3)当表单数据提交成功(保存到数据库-持久化),然后删除session(缓存)对应的 页面添加Token防止越权访问-也可做表单重复提交,使用的原理也是Token!

    82420

    前端基础:JavaScript

    JavaScript 的作用: 1. 表单验证操作; 2. 通过 JavaScript 对 HTML 代码内容进行修改,对 HTML 的 CSS 样式进行修改。 JavaScript 可以通过不同的方式来显示数据: 使用 window.alert() 弹出警告框。 使用 document.write() 方法将内容写到 HTML 文档 JavaScript 声明一个变量可以使用 var 运算符。声明一个变量时可以包含数字字母下划线,但是不能以数字开头。 注意在 JavaScript 它的字符类型可以使用双引号或单引号,因为 JavaScript 字符与字符串是同一个类型。 undefined 类型。变量未初始化。 null 类型。对象不存在。 var iNum1 = 1, iNum = 2, iNum3 = 3; 流程控制语句 if 条件 Java if 语句后面的条件必须是 true/false 值,而在 JavaScript 我们描述

    19120

    HTML 表单和约束验证的完整指南

    本文中,我们将研究 HTML 表单字段和 HTML5 提供的验证选项。我们还将研究如何通过使用 CSS 和 JavaScript 来增强这些功能。 什么是约束验证? 每个表单域都有一个目的。 现代浏览器能够检查用户是否遵守了这些约束,并可以违反这些规则时向他们发出警告。这称为约束验证。 客户端与服务器端验证 语言早期编写的大多数 JavaScript 代码处理客户端表单验证。 但首先,这里有一个重要的警告信息: 客户端验证是一项很好的功能,它可以应用程序浪费时间和带宽将数据发送到服务器之前防止常见的数据输入错误。它不能替代服务器端验证! 始终清理服务器端的数据。 使用正确的字段type并autocorrect提供在 JavaScript 难以实现的好处。 你可以: 停止验证,直到用户与字段交互或提交表单 使用自定义样式显示错误消息 提供仅在 HTML 无法实现的自定义验证

    34240

    浅谈php安全

    这两个问号限定了“数据”的位置,以及sql语句的结构。我们可以把我们所有的数据库操作都封装到一个类,所有sql语句的执行都进行预编译。 用户能控制的内容,我们一定要使用htmlspecialchars等函数来处理用户输入的数据,并且javascript要谨慎把内容输出到页面。 但是B可以做一个“极具诱惑力”的页面,其中某个按钮就写成这样一个表单,来诱惑A点击。A一点击,依旧还是赞了这篇文章。 最后,该论坛只好把表单增加了一个验证码。只有A输入验证码才能点赞。 用户填写了验证码提交后,服务端上SESSION验证进行比对。 由此想到了我之前犯过的一个错误。验证码比对完成之后,不管是正确还是错误,我都没有清理SESSION。 这样产生了一个问题,一旦一个用户第一次提交验证码成功,第二次以后不再访问生成验证码的脚本,这时候SESSION验证码并没有更新,也没有删除,导致验证重复使用,起不到验证的作用。

    1.1K80

    PHP全栈学习笔记23

    require()出错误信息会终止脚本的处理,include()输出警告,不会终止脚本的处理,require()语句调用文件,程序一执行,就调用,include()只有执行到这句时,才会调用。 > 数据库函数库 count统计数组中元素的个数 array_push向数组添加元素 array_pop获取并返回数组的最后一个元素 array_unique删除数组重复的元素 array_keys 获取数组重复元素的所有键名 array_search获取数组中指定元素的键名 explode将字符串分割成数组 implode将数组的元素组合成一个字符串 array_rand 从数组随机取出一个或多个单元 arsort 对数组进行逆向排序 asort 对数组进行排序 in_array 在数组搜索某个值 count()对数组的元素个数进行统计 array_push()函数可以向数组添加元素 strlen stripslashes()函数对转义后进行还原 截取字符串 substr()函数从0开始,进行截取字符串要注意编码格式,切记页面编码不能设置为utf-8,如果页面是utf-8编码格式,那么就使用

    38330

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • 对话机器人

      对话机器人

      云小微对话机器人基于完全自研的AI全链路能力,对用户输入的文本或语音识别的文本做语义理解、识别用户真实意图,记忆上下文和联想分析,面向用户提供快速、精准的信息问询体验。同时还为客户提供运营工具,通过对线上用户日志的挖掘,以及腾讯海量线上数据挖掘,提炼出各种问法,最终提高用户服务体验的满意度,减轻人工服务压力。

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券