页面刷新重复提交

Posted hhls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了页面刷新重复提交相关的知识,希望对你有一定的参考价值。

转自:http://www.lai18.com/content/9827430.html

一个很老的话题了,在提交了一个form的数据后,怎样才能防止用户直接刷新提示界面来重复提交数据呢,大至上有两个很简单的方式达到目的。

方法一、form提交处理完后用Response.Redirect跳转一下页面,使得用户无法直接刷新到form提交后的页面,这种方式麻烦就是,你想保持提交前的页面状态的话,要作需要数据接替操作,作起来相当麻烦,我用这个方法时一向都是强制丢起所有页面状态,无奈,人懒没药医。

方法二、将form的所有数据加起来然后Md5一下,存在session里,下次收到数据在处理前也将所有相同的数据加起来Md5一下,对比session里的数据,如果一样就表示是重复提交,拒绝操作。防止用户手动把两次form值都填一下而无法提交,可以加一个当前时间的hidden来判定一下,是手动提交还是刷新提交就完美了。

以前一直在用方法一,导致页面状态,要不很麻烦的处理要不懒得处理导致很简单的界面用户操作起来相当繁琐。要不就是让用户随便刷新重提。最新一直在作着银行支付接口一直在搞密匙,作到这种界面时,突然想到,银行支付接口靠md5保证数据的完整性及安全性,为啥不能用md5来验证一下提交过来的form数据是否与上一次的相同呢?还能节省session占的内存数,然后方法二就诞生了。并发个blog记录一下,防止什么时候脑子一短路又把这方法给忘了,又回到页面状态保持困难的地狱里去。

以上是关于页面刷新重复提交的主要内容,如果未能解决你的问题,请参考以下文章

用HTTP状态码实现提交表单后刷新页面不重复提交

没有页面刷新的表单提交[重复]

提交文件而不刷新页面[重复]

php如何避免刷新页面重复提交

form提交后刷新又提交一次,怎么解决,重复提交,求高人解答

防止HTML表单提交刷新页面并触发另一个功能[重复]