防止用户不断刷新和重复提交
来源:互联网 发布:淘宝账号等级查询 编辑:程序博客网 时间:2024/04/30 03:05
防止用户不断刷新和重复提交的实现原理和代码:
1、原理:session防止用户重复提交的实现原理,当用户首次提交时,把提交的时间写入session,当用户不断刷新或提交时,与写入session时间进行比对,若小于N秒时,说明用户是不断刷新或重复提交。
2、代码,前台代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>防止用户不断刷新和重复提交</title>
</head>
<body>
<form id="form1" runat="server">
<div>
session防止用户重复提交的实现原理,当用户首次提交时,把提交的时间写入session,当用户不断刷新或提交时,<br />
与写入session时间进行比对,若小于N秒时,说明用户是不断刷新或重复提交。<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="提交" OnClick="Button1_Click" Style="height: 21px" />
<asp:Button ID="Button2" runat="server" Text="clear_sesion" OnClick="Button2_Click" />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>防止用户不断刷新和重复提交</title>
</head>
<body>
<form id="form1" runat="server">
<div>
session防止用户重复提交的实现原理,当用户首次提交时,把提交的时间写入session,当用户不断刷新或提交时,<br />
与写入session时间进行比对,若小于N秒时,说明用户是不断刷新或重复提交。<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" Text="提交" OnClick="Button1_Click" Style="height: 21px" />
<asp:Button ID="Button2" runat="server" Text="clear_sesion" OnClick="Button2_Click" />
<asp:Label ID="Label1" runat="server" Text=""></asp:Label>
</div>
</form>
</body>
</html>
后台代码:
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Button1_Click(object sender, EventArgs e)
{
//当session为null时,说明该用户是第一次提交,可以直接提交A方法里的数据
if (Session["data"] == null)
{
//模式从页面上获取文本框架的数据提交到数据库
A(0);
//数据提交到数据库后,把到前时间写到session里
Session["data"] = DateTime.Now.ToString();
}
else
{
//获取session里面的时间
DateTime date = Convert.ToDateTime(Session["data"].ToString());
//获取当前的时间的毫秒数
int spanc = (int)(DateTime.Now - date).TotalMilliseconds;
//如果当两次提交同一表单的间隔时间的小于3秒,认定为重复提交
if (spanc < 3 * 1000)
{
//提醒用户重复提交
Response.Write("重复提交");
}
else
{
//否则允许用户提交
A(spanc);
}
}
protected void Button1_Click(object sender, EventArgs e)
{
//当session为null时,说明该用户是第一次提交,可以直接提交A方法里的数据
if (Session["data"] == null)
{
//模式从页面上获取文本框架的数据提交到数据库
A(0);
//数据提交到数据库后,把到前时间写到session里
Session["data"] = DateTime.Now.ToString();
}
else
{
//获取session里面的时间
DateTime date = Convert.ToDateTime(Session["data"].ToString());
//获取当前的时间的毫秒数
int spanc = (int)(DateTime.Now - date).TotalMilliseconds;
//如果当两次提交同一表单的间隔时间的小于3秒,认定为重复提交
if (spanc < 3 * 1000)
{
//提醒用户重复提交
Response.Write("重复提交");
}
else
{
//否则允许用户提交
A(spanc);
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
//清除所有session
Session.Clear();
}
{
//清除所有session
Session.Clear();
}
protected void A(int spanc)
{
{
String str = Session["str"] == null ? TextBox1.Text + DateTime.Now.ToString() : Session["str"].ToString() + TextBox1.Text + DateTime.Now.ToString() + ":" + spanc + "</br>";
Session["str"] = str;
Session["str"] = str;
Label1.Text = Session["str"].ToString();
}
}
}
}
- 防止用户不断刷新和重复提交
- 防止刷新重复提交
- 如何防止多次提交和重复刷新
- JavaWeb防止重复提交,重复刷新和后退
- ASP轻松地实现了防止用户刷新多次提交表单和使用后退钮重复多次提交表单
- jsp防止刷新重复提交
- struts2 防止刷新重复提交
- 防止刷新重复提交表单
- 防止表单重复提交&刷新
- java 防止重复提交、重复刷新
- java 防止重复提交、重复刷新
- 防止用户表单重复提交
- 如何防止用户重复提交
- 等待提交页面防止用户重复提交
- 怎样防止浏览器刷新重复提交数据?
- 怎样防止浏览器刷新重复提交数据?
- 怎样防止浏览器刷新重复提交数据?
- 防止页面刷新重复提交几招
- 从配电脑看公司管理
- SWT/Jface 图片自动缩放的例子
- asterisk 11 版本增加功能
- Spring源码学习之--事务类型
- 【基础C&C++】模板
- 防止用户不断刷新和重复提交
- 学打羽毛球心得(三) --- 学习方法篇
- 互联网研发的高级技术人员应该具备怎样的知识结构
- Java 单例模式探讨
- i9100 基带信息未知,显示飞行模式解决方法
- C语言内存分配管理(学习笔记)
- 51单片机与6264通信探讨
- 计算机网络的一些题
- Ubuntu中安装tftp/tftp-hpa服务的方法