在网页制作中,由于Backspace键可以回退到上一个网页,利用了缓存的数据,从而导致一些错误发生.浏览器的后退按钮使得我们能够方便地返回以前访问过的页面,它无疑非常有用.但有时候我们不得不关闭这个功能,以防止用户打乱预定的页面访问次序.本文介绍网络上可找到的各种禁用浏览器后退按钮方案,分析它们各自的优缺点和适用场合. 一.概述  曾经有许多人问起,“怎样才能‘禁用’浏览器的后退按钮?”,或者“怎样才能防止用户点击后退按钮返回以前浏览过的页面?”在ASP论坛上,这个问题也是问得最多的问题之一.遗…
[摘要] 目前很多网站都要提交页面插入或更新数据库,比如留言本,一个用户提交留言后,如果按F5,就会重新提交一遍留言,导致数据库出现两条一模一样的留言,本文介绍了几种防止页面刷新,导致重复提交数据的方法. [全文] 1.也是最简单和最常用的办法,就是使用转向页面语句,分两种:    a.使用服务器端的 Response.Redirect("YourPage");    b.使用客户端脚本 <script language=javascript>location.href='…
net 防止重复提交 微软防止重复提交方案,修改版 Code ; i < cookie.Values.Count; i++)                     log.Info("cookie[" + cookie.Values.GetKey(i) + "]:" + cookie.Values[i]);             }             return cookie;             #endregion         }   …
string hiddenToken = "hiddenToken"; public void OnActionExecuting(ActionExecutingContext filterContext) { string httpMethod = filterContext.RequestContext.HttpContext.Server.HtmlEncode(filterContext.RequestContext.HttpContext.Request.HttpMethod)…
原文发布时间为:2008-10-14 -- 来源于本人的百度文章 [由搬家工具导入] 1、提交后 禁用提交按钮(像CSDN这样)2、数据处理成功马上跳转到另外一个页面! 操作后刷新的确是个问题,你可以使用跳转页面、关闭本页面,如果是有参数据条件来控制的,那就应该好做了,可以直接修改window.location的值,把值的参数全部改掉,这样就可以了。我用的方法就是以上的。 document.all("save_"+idx).disabled=true; 刚才有位兄弟也这么问其实很简单在…
1.将按钮属性设置如下: <asp:Button ID="btConfirm" runat="server" Text="Confirm" Width="96px" UseSubmitBehavior="false" OnClientClick="confirmStockout(this)"/> 这里需要将UseSubmitBehavior设置为false, UseSubmi…
网页内容在较长时,每次回传刷新页面或提交网页时都会定位到最顶端,非常不利于用户交互. 将Page.MaintainScrollPositionOnPostBack属性值设置为true即可实现刷新后保持上次的滚动位置,可配置web.config,也可以在 <%Page %>标记中设置属性MaintainScrollPositionOnPostBack=true. 如: <%@ Page Language="C#" AutoEventWireup="true&q…
 项目中经常遇到刷新后重复的向数据库增加一条相同的记录,造成数据重复,如何规避这些问题呢?下面我们就一起讨论一下在asp.net怎样防止页面刷新或后退引起重复提交数据的问题: 其实asp.net防止刷新是asp.net开发中经常遇到的问题.通常有多种方法来实现:(下面只是个人总结的一些方法)不全,也很希望朋友们能多多补充.谢谢. 1:请求转发(即在数据提交操作后立即转跳到其他页面,防止页面刷新引起回发操作). 2:前端使用脚本禁用表单提交按钮. 3:不保存缓存 Response.Cache.Se…
PHP防止页面刷新.重复提交数据 (2011-12-09 16:52:45) 转载▼ 标签: it 分类: php技术相关 闲来无事看了一下php session ,又在网上看了防止页面刷新重复提交数据,大部分写的啰啰嗦嗦的,而且大多是一样的COPY过来的连错别字都没有改 像臭婆娘的裹脚布.于是我自己也琢磨了一下,不知道也是不是裹脚布. 这里只说用SESSION 如何实现: session 是作用于服务器端的数据,只要种植一次不再刷新其值是不会被改变的,就利用这一点就可以实现阻止用户重复提交数据…
我们大家再进行web开发的时候,必不可少会遇见表单重复提交问题.今天就来给总结如何解决表单提交问题,欢迎大家交流指正. 首先我们在讨论如何解决表单重复提交问题之前先来解决三个问题:1.什么叫表单重复提交?2.什么情况下会出现表单重复提交?3.什么情况需要避免表单重复提交? 什么叫表单提交问题,说白了,就是同一份信息,重复的提交给服务器. 那么,在什么情况下回产生表单重复提交的情况呢? 给大家列举以下情况: 1.点击F5刷新页面:当用户点击submit将已经写好的表单数据提交到服务器时,可以在浏览…
首先我们在讨论如何解决表单重复提交问题之前先来解决三个问题:1.什么叫表单重复提交?2.什么情况下会出现表单重复提交?3.什么情况需要避免表单重复提交? 什么叫表单提交问题,说白了,就是同一份信息,重复的提交给服务器. 那么,在什么情况下回产生表单重复提交的情况呢? 给大家列举以下情况: 1.点击F5刷新页面:当用户点击submit将已经写好的表单数据提交到服务器时,可以在浏览器的url看到地址和参数的变化,但因为网速等问题,用户当前页面并未刷新,或者点击刷新页面,造成表单重复提交. 2.重复点…
一.拦截器实现,ResubmitInterceptorHandler.java import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Component; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.handler.HandlerIntercept…
前段时间遇到了需要禁用刷新的需求,f5按钮就不说了,简单的js就能把它禁用,但是工具条上的刷新按钮却傻傻干不掉. 如果简单的在刷新时重新加载画面,通过window.location.href="url"可以很容易的实现,但是需求是要求在刷新时什么都不做,保留画面的状态,这下子可就复杂化了. asp.net中分辨请求是重新请求还是通过刷新按钮再次请求不是很方便,为了实现这个效果,试过了很多的方式,一下面的两种为例 private bool pageRefreshed = false; /…
转载 http://www.cnblogs.com/hiteddy/archive/2012/03/29/Prevent_Resubmit_When_Refresh_Reload_In_ASP_NET_Web_Form_MVC.html 什么是刷新/重新载入 IE中的刷新(Refresh),在FF和Chrome中称为重新载入(Reload),与正常进入页面的区别在于以下两点: 1. 缓存控制 如果文件(比如图片)在本地缓存中已经存在,正常进入页面会不访问服务器而直接从本地加载.而对于刷新操作,即…
1.使用Session,避免用户重复提交(F5刷新时) 0.起因         当用户上传文件后F5刷新浏览器会导致文件的重复提交和相关程序的重复执行.   1.实现原理         由于刷新提交表单,实际上提交的就是上一次正常提交的表单,所以我们只要做一个标志,判断出是新表单还是上一次的旧表单就可以分辨出是否进行了重复提交操作.   2.实现方法         在页面上放置一个Hidden域,当页面第一次载入的时候,在Session里面保存一个标志,同时,把这个标志保存到页面上的Hid…
当用户按下浏览器中的 F5 键刷新当前页面时,对这一过程进行检测所需的操作步骤.页面刷新是浏览器对特定用户操作(按 F5 键或单击"刷新"工具栏按钮)的响应.页面刷新操作是浏览器内部的一种操作,因为浏览器不会为事件或回调发出任何外部通知.从技术上讲,页面刷新是通过 "简单"重复最新请求来实现的.换句话说,浏览器将缓存已处理的最新请求,并在用户单击页面刷新键时重新发布已处理的请求. 正 是因为所有浏览器(据我所知)不会为页面刷新事件提供任何类型的通知,所以服务器端的代…
第一种方法:javascript控制.缺点,一般用户使用没问题,但是懂点js的还是可以强行重复提交.而且,后退再提交,你也没啥办法.第二种方法:服务器控制.后台生成一个token,存入session或者其他缓存里面.渲染表单时,给form一个隐藏的token(令牌).用户提交表单时:先判断表单里面的token是否存在,不存在拒绝接受此数据:如果存在token,判断此表单里的token是否和session里的token一致,如果不一致,拒绝处理数据:如果一致,处理表单,并从session里移除此t…
PS:实际使用中发现,第①种方法在火狐浏览中有时候有问题.第2种方法,在各个浏览器中都没问题 近做项目遇到了这样的情况: 公司网络比平常慢了不少,在点击保存按钮提交页面后需等待挺长的一段时间,忍不住手贱点多了几次,当提交完成后发现数据库竟多出了几条相同的数据!也就是说相同的内容提交了多次. 经测试,当网络很顺畅的时,快速连续不断点击提交按钮,也会造成页面重复提交!点击多少次就会提交多少次,也就会录入多少条数据! 当然,若录入的数据中有唯一值的判断处理或者数据表字段有唯一性约束,就不会出现录入重复…
贴子转自http://hi.baidu.com/bobylou,转之前并没有验证文章里的方法是不是有效,估计原作者把它放到blog之前应该做过测试了吧. Struts本身有一套完善的防止重复提交表单的Token(令牌)机制,但笔者目前的项目自写的framework没有用到Struts,故也得自写防止用户因为后退或者刷新来重复提交表单内容的Token机制.不难,容易实现. 实现原理:一致性.jsp生成表单时,在表单中插入一个隐藏<input>字段,该字段就是保存在页面端的token字符串,同时把…
最近在学些node,按照<nodejs实战>上的代码做练习,发现有表单重复提交的问题 第一次打开页面,显示如图是get请求 图1 现在我们提交aaa,显示如图,post请求 图2 刷新页面,应该显示图1的,结果确实下面这张图,post请求.即使是按ctrl+f5刷新没用,浏览器还是重复提交了上次的内容,显示如图 图3 不断的刷就这样了,求教这个是为什么? 图4 node代码如下 var http=require("http"); var qs = require("…
PHP避免刷新页面重复提交 2013-07-09 15:27 匿名 | 浏览 3567 次 编程语言 情景:从html提交数据到x.php 在x.php中$_POST数据写库并且显示,当x.php刷新时,入库操作会被再次执行,用了if($_POST) 并且在程序结尾给$_POST赋空值,但是刷新的时候POST依然有值,求知道怎么避免反复提交. 关键:1.数据从html过来的,不是PHP 2.要在x.php显示获取到的数据 3.要入库 4.是刷新x.php 不是直接访问 2013-07-09 17…
Web页面中经常碰到这类问题,就是客户端多次点击一个按钮或者链接,导致程序出现不可预知的麻烦. 客户就是上帝,他们也不是有意要给你的系统造成破坏,这么做的原因很大一部分是因为网络慢,点击一个操作之后,系统响应慢,于是点击多次.如果我们遇到这种情况, 也许是一样的操作方法,所以解决问题才是王道. 废话不多说,直接切入正题. 方法一:在客户端制作一个遮罩层. 即用js和css制作一个纯白色或者黑色的遮罩的div,当客户端点击按钮时,弹出这个div并覆盖在当前用户界面之上, 这样遮罩层下面的内容被屏蔽…
在网上购物的过程中,提交完一个页面后,如果此时按f5刷新,则会弹出一个提示:如果继续,则会重新发送提交我们刚才提交的内容,这个问题应该规避掉,不然总是重复提交付款,那可不是件好事. 在c#.net中的解决方法:1. 提交成功后,将一个成功状态存入session中,然后重新载入该页面.2. 在page_load方法中,判定该session字段的状态值,如果为成功,则显示成功信息,否则显示错误提示,紧跟着通过Session.Remove()方法来清空该缓存即可.…
正常情况下,表单提交后如果用户刷新页面会重复提交表单,有些情况下我们不希望表单重复提交,利用HTTP协议中的307状态码重定向页面可以实现这个目的.实例如下: 表单页面代码: <form action="1.php" method="post"> <input type="text" name="na"> <input type="submit" value="提交&…
首先,页面第一次加载,在未进行任何操作,表单没有提交过的前提下,此时点击F5刷新,是没有任何问题的. F5刷新引起表单重复提交 前提条件: 用户已通过 (1)submit按钮 (2)js的form.submit()方式提交过表单. (3)其他方式,我不了解,希望有大神知道可以告知 提交了一次表单. 根据提交表单的方式,查看提交表单后分两种情况, get:在地址栏,可看到页面地址栏变化: ?后面是表单提交时传递的参数.毫无疑问,F5刷新时是会把这些参数重新提交的. post:chrome下打开开发…
实现思想:每个页面打开的时候会在页面的隐藏控件自动生成一个值并将这个值赋值session,当提交方法的时候会在过滤器的时候进行获取session和页面传值过来的隐藏控件的值进行比较,如果值相同的话,重写session值.否则的话给出提示. ActionFilter: using System;using System.Web;using System.Web.Mvc;using EwayFramework.Utils.Token; namespace EwayFramework.BaseCont…
<script type="text/javascript"> /* jquer 脚本,避免重复提交 隐藏点击的submit,后在他之后插入同名button伪装成被隐藏的submit 最后禁用全部可见的submit和button 最终效果:点击按钮提交表单后,点击后退按钮,返回提交表单页面,提交按钮已被禁用 注:此方法毕竟在客户端处理,防君子不防小人 */ $(document).ready(function() { $(":submit").click…
location.replace(location.href);//刷新页面,不重复提交…
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Document</title></head><body><form action="{$actionUrl}fuyuandian/index.html" method="post" id=&…
原因:造成表单重复提交的原因是当我们刷新浏览器的时候,浏览器会发送上一次提交的请求.由于上一次提交的请求方式为post,刷新浏览器就会重新发送这个post请求,造成表单重复提交. 解决办法: 将请求当前页面的方式由请求转发改为重定向到当前页面即可. 举例: 编写一个处理登录请求的controller,登录成功就转到dashboard.html,登录失败则跳转到登录页面login.html重新登录. 注:dashboard.html和login.htm都是templates包下的. @Contro…