以前自己的论坛因为程序源码跟WIN2000的注册表有冲突,帖子发出后会出现无效页面,以致于论坛里有很多无恶意的重复帖子,后来想出了一个办法,用JS避免重复提交,下面是部分源码:
1<script language="JavaScript">
2function formsubmit() {
3Today = new Date();
4var NowHour = Today.getHours();
5var NowMinute = Today.getMinutes();
6var NowSecond = Today.getSeconds();
7var mysec = (NowHour*3600)+(NowMinute*60)+NowSecond;
8if((mysec-document.formsubmitf.mypretime.value)>600)
9//600只是一个时间值,就是5分钟内禁止重复提交,值随你高兴设
10{
11document.formsubmitf.mypretime.value=mysec;
12}
13else
14{
15alert(' 按一次就够了,请勿重复提交!请耐心等待!谢谢合作!');
16return false;
17}
18document.forms.formsubmitf.submit();
19}
20</script>
1<body bgcolor="#FFFFFF">
2<form action="XXX.asp" id="the" method="post" name="formsubmitf">
3<input name="mypretime" type="hidden" value="0"/> //这句不能少,用隐含变量传递一个时间初值
4
5//这里是你要提交的内容
6
7<input class="4round" name="button1" onclick="formsubmit()" type="button" value="写好了"/> <font class="red">(请按一次,耐心等待!)</font> <input class="4round" name="button2" type="reset" value="重 写"/>
8</form>
9
10用了这个代码,论坛的重复帖子明显减少,不过有个缺点,就是刷新一次,检测就不起作用,好处就是利用JS检测,不需要额外的权限支持,至于效果如何,用不用就随你们了,(最好前端跟后端都加上检测)</body>