最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
防止用户重复提交数据方法总结
时间:2012-09-28 编辑:简简单单 来源:一聚教程网
php cookie处理方法
如果数据通过了上边的两次验证,说明数据是合法有效的数据。这时候我们把提交的数据串接为一个字符串,并用MD5加密后得到一个MD5的值,接着我们把这个值通过Cookie放进客户端,当用户下一次提交表单的时候我们就重新操作这一步,并且读出Cookie中的MD5值,进行比较,如果相同就可断定用户提交两次提交的表单是相同的,否则替换这个Cookie!
代码如下 | 复制代码 |
$value = $_COOKIE["value"]; //读取上一次设置的Cookie值 |
js解决方法
1.提交时多次刷新,导致服务器上的脚本多次接受数据
方案
第一步:前台表单用javascript函数触发表单的submit.哪些对输入内容不作校验直接insert into的多可怕呀
示例:
代码如下 | 复制代码 |
|
利用浏览器的缓存回退接着提交
第一步:可以在处理后用强制方法把上一步地址记录清空.像javascript中 location.replace或像PHP中的Location,即使这步用不上也无所谓.我们只要清空浏览器保存的值就可以
第二步:在表单页面加入下面的JS函数
代码如下 | 复制代码 |
|
也可以用javascript DOM 的Form reset().如下示例
代码如下 | 复制代码 |
$('#signupform').each (function(){ |
asp.net解决方法
解决方法是存储Session的ID和当提交时ViewState中存储的SessionID相比较来防止用户刷新屏屏幕。前提你的程序中允许了自动回发,如果不是的话,就得在hidden field存储这个变量了。下面给出一个典型的例子。在Page_Load事件中你存储了第一次提交时的SessionID和一个时间戳。
代码如下 | 复制代码 |
protected System.Web.UI.WebControls.Button SubmitButton; protected System.Web.UI.WebControls.Label RefreshID; private void Page_Load(object sender, System.EventArgs e) { private void Button1_Click(object sender, System.EventArgs e) { Session[FrameworkConst.SYNC_CONTROL_KEYWORD] = Session.SessionID+DateTime.Now.Ticks.ToString(); } |
jsp重复提交问题
看了网上的,有几种方法:
1 在你的表单页里HEAD区加入这段代码:
代码如下 | 复制代码 |
|
2 生成一个令牌保存在用户session中,在form中加一个hidden域,显示该令
牌的值,form提交后重新生成一个新的令牌,将用户提交的令牌和session
中的令牌比较,如相同则是重复提交
3 在你的服务器端控件的代码中使用Response.Redirect("selfPage")语句。但是大多的数都不使用这种方法。
方法还有很多。。。
4
代码如下 | 复制代码 |
5 在JSP页面的FORM表单中添加一个hidden域
代码如下 | 复制代码 |
> |
在你的serverlet(Java代码)中添加如下语句
代码如下 | 复制代码 |
String url=request.getParameter("url"); response.sendRedirect(url); |
相关文章
- 如何防止用户重复提交数据 01-19
- SpringBoot测试配置属性与web启动环境解析 10-24
- vue中将el-switch值true、false改为number类型的1和0解析 10-24
- Vue中的路由配置项meta使用解读 10-24
- SpringBoot自定义bean绑定解析 10-24
- SpringBoot常用计量与bean属性校验和进制数据转换规则解析 10-24