| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦   
共有 699 人关注过本帖
标题:防止刷新重提交表单的问题
收藏  订阅  推荐  打印
longjw
Rank: 1
来自:湖南
等级:新手上路
帖子:34
积分:486
注册:2008-7-18
防止刷新重提交表单的问题

我最近才转入ASP行业来的
在做网站的同时碰到了一些问题
在此请教各位大侠
防止表单重复提交的问题
2008-7-25 09:20
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:7967
积分:81334
注册:2004-7-17

如果像论坛这种提交表单后过一定的时间才能提交下一次。
首先,数据库里数据的发布时间一定要存在。
然后查询数据库里最新发布的那条数据的时间
利用DateDiff函数比较当前时间与最新发布时间相差多少分钟
少于1分钟则提示不允许提交,大于1分钟则进行提交。

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-7-25 10:05
lele2007
Rank: 4
来自:广东省清远市
等级:高级会员
帖子:484
积分:5276
注册:2007-9-4

版主是不是刷新提交时还是对刚才提交的数据进行datediff的比较呢?

学建网站www.lele1988.cn
2008-7-25 10:21
lele2007
Rank: 4
来自:广东省清远市
等级:高级会员
帖子:484
积分:5276
注册:2007-9-4

百度找了一下,但是看不太懂,要用到session的!
http://www.qsxjz.cn/onews.asp?id=138

学建网站www.lele1988.cn
2008-7-25 10:22
tianyu123
Rank: 4
等级:高级会员
威望:2
帖子:563
积分:5876
注册:2007-8-26

最好是提交后直接转到另一页面

改变一切,须从改变观念开始!
2008-7-25 10:23
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:7967
积分:81334
注册:2004-7-17

引用:
lele2007 在 2008-7-25 10:21 的发言:

版主是不是刷新提交时还是对刚才提交的数据进行datediff的比较呢?
是对上一次提交的数据进行DateDiff比较

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-7-25 10:54
BOSS级菜鸟
Rank: 3Rank: 3
等级:中级会员
威望:4
帖子:315
积分:3861
注册:2008-6-3

用无刷新提交不会出现此问题,

刚把注册登录写出来了http://jie.splan.cn/bbs/
ie7+布局有问题请说明

为了防止机器人,也加了使用间隔,因为禁用了session所以用数据库做的,记录IP和时间,对比时间就行了

以下为类里面的其中一段代码

public sub xie '这是写入
  dim a
  a=ip()
  conn.execute"insert into sess(ip,dd) values('" & a & "','" & now() & "')"
end sub

public sub du '这是读出
  dim a
  a=ip()
  conn.execute"delete from sess where datediff('s',dd,'" & now() & "')>10"
  create_rs "select ip from sess where ip='" & a & "'"
end sub
2008-7-25 12:08
lele2007
Rank: 4
来自:广东省清远市
等级:高级会员
帖子:484
积分:5276
注册:2007-9-4

引用:
yms123 在 2008-7-25 10:54 的发言:


是对上一次提交的数据进行DateDiff比较
版主,那怎么获得上次的写放的数据的?

学建网站www.lele1988.cn
2008-7-25 13:43
yms123
Rank: 12Rank: 12Rank: 12
等级:版主
威望:72
帖子:7967
积分:81334
注册:2004-7-17

引用:
lele2007 在 2008-7-25 13:43 的发言:


版主,那怎么获得上次的写放的数据的?
提交表单的操作一般都是将当前数据存入数据库,在存入数据库操作之前。
用数据库查询获得要存入的那个表的最新存入的数据,这个数据就是上一次存入的。
然后用上一次存入的数据的时间与当前时间进行DateDiff比较如果时间小于间隔时间就不把提交的数据存入数据库并提示用户,否则就将提交的数据存入数据库。

http://www.lxzhcn.net
临时域名:http://yms126.1.suhai.com.cn/
版块版主招募中
网站论坛发帖无问题,欢迎发帖。
2008-7-25 14:03
lele2007
Rank: 4
来自:广东省清远市
等级:高级会员
帖子:484
积分:5276
注册:2007-9-4

哦,明白些了。那样可以用  top 1 * from table order by id desc  吧。。。呵呵
以前记得不知用哪个语句可以获取最后一次提交的ID编号的。。。

[ 本帖最后由 lele2007 于 2008-8-18 17:40 编辑 ]

学建网站www.lele1988.cn
2008-8-18 17:36
共有 698 人关注过本帖
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.055572 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved