注册 登录
编程论坛 ASP技术论坛

防止刷新重提交表单的问题

longjw 发布于 2008-07-25 09:20, 2210 次点击
我最近才转入ASP行业来的
在做网站的同时碰到了一些问题
在此请教各位大侠
防止表单重复提交的问题
10 回复
#2
yms1232008-07-25 10:05
如果像论坛这种提交表单后过一定的时间才能提交下一次。
首先,数据库里数据的发布时间一定要存在。
然后查询数据库里最新发布的那条数据的时间
利用DateDiff函数比较当前时间与最新发布时间相差多少分钟
少于1分钟则提示不允许提交,大于1分钟则进行提交。
#3
lele20072008-07-25 10:21
版主是不是刷新提交时还是对刚才提交的数据进行datediff的比较呢?
#4
lele20072008-07-25 10:22
百度找了一下,但是看不太懂,要用到session的!
http://www.
#5
tianyu1232008-07-25 10:23
最好是提交后直接转到另一页面
#6
yms1232008-07-25 10:54
[bo][un]lele2007[/un] 在 2008-7-25 10:21 的发言:[/bo]

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

是对上一次提交的数据进行DateDiff比较
#7
2008-07-25 12:08
用无刷新提交不会出现此问题,

刚把注册登录写出来了http://jie.
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
#8
lele20072008-07-25 13:43
[bo][un]yms123[/un] 在 2008-7-25 10:54 的发言:[/bo]


是对上一次提交的数据进行DateDiff比较

版主,那怎么获得上次的写放的数据的?
#9
yms1232008-07-25 14:03
[bo][un]lele2007[/un] 在 2008-7-25 13:43 的发言:[/bo]


版主,那怎么获得上次的写放的数据的?

提交表单的操作一般都是将当前数据存入数据库,在存入数据库操作之前。
用数据库查询获得要存入的那个表的最新存入的数据,这个数据就是上一次存入的。
然后用上一次存入的数据的时间与当前时间进行DateDiff比较如果时间小于间隔时间就不把提交的数据存入数据库并提示用户,否则就将提交的数据存入数据库。
#10
lele20072008-08-18 17:36
哦,明白些了。那样可以用  top 1 * from table order by id desc  吧。。。呵呵
以前记得不知用哪个语句可以获取最后一次提交的ID编号的。。。

[[it] 本帖最后由 lele2007 于 2008-8-18 17:40 编辑 [/it]]
#11
anlige2008-08-19 01:15
session不就可以了吗?第一次提交后把session清空,再刷新就提示错误~
1