防止重复提交:防止网上重复投票的方法



网上调查是快速收集信息有效思路方法但是目前部分网站WebSite网上调查存在个不足的处即任何用户根据自己爱好可以连续反复投票所有调查结果都是为决策作参考不管对个单位还是个部门决策失误都会带来意想不到损失所以防止重复投票具有重要意义本文所给出基于ASP(ActiveServerPage)几种思路方法在定程度上可以防止连续反复投票

ASP对象
在ASP中有5个对象:Request、Response、Session、Application、Server下面只针对本文能用到对象属性进行介绍说明其他方面属性请参考相关资料本文提供思路方法原理是:设置个逻辑变量IsVoted在投票的前验证IsVoted只有值为False时才能投票否则就认为已投过票
Application对象是处理某特定ASP应用中所有用户共享信息对象也就是说Application对象是所有联网机器上所有网页所共享对象由Application对象所定义和设置变量所有用户所有网页均可访问利用Application对象可以定义变量以及改变变量其语法格式如下:Application(“变量名”)=表达式在.asp文件中可通过Application(“变量名”)加以引用Application把变量值保存在WebServer端

Session对象用于单个用户管理信息Session变量只在页面间(即在个Session内)Session变量是私有个Session中某个变量值改变不影响另个Session中同名变量Session对象也把变量值保存在服务器端但是各个Session保存位置区别Session是私有所以有多少个Session对象就存在多少个IsVoted变量这些变量的间没有关系

Cookies对象是不能单独存在它依附于Request和Response对象在使用时必须在Cookies前加上Request或Response同Application和SessionCookies也能保存变量但是Cookies只在浏览器客户端保存变量用Cookies所定义变量有个属性:可以设置Cookies变量使用期限而且旦设置了使用期限Cookies变量可以被从同台机器上登录所有用户所共享我们可以利用Cookies这个属性设置间隔定时间才能再次投票

Server对象主要完成些需要WWW服务器处理工作本文中我们主要利用Request.ServerVariables读取Server环境变量中客户端IP地址并根据IP地址来设定相隔多长时间同IP地址才能再次投票

Global.asa文件完成共享变量和文件定义及化任务Global.asa文件必须位于ASP应用根目录下个ASP应用只能有个Global.asa文件Global.asa中含有Application_OnStart、Application_OnEnd、Session_OnStart、Session_OnEnd 4个事件我们在Application_OnStart、Session_OnStart事件中定义Application变量和Session变量以及进行这样在以后网页中就可以读取这些变量ASP在下列情况下读取Global.asa内容:

1.在WebServer启动的后次请求ASP应用中任何.asp文件时;

2.不在Session状态用户请求ASP应用.asp文件

思路方法:利用Session对象
在Global.asaSession_OnStart事件中设置逻辑变量IsVoted值为FALSE(表示还没有投票)投票的后在.asp中把IsVoted值改为TRUE(表示已投过票)每次投票的前都要判断IsVoted如果IsVoted值为TRUE就不能再投票;如果值为FALSE则可以投票
Session对象使用必须和浏览器Cookies功能相配合所以在判断IsVoted值的前必须先判断浏览器Cookies功能是否打开如处于关闭状态则此种思路方法失效所以在这种情况下必须给出提示信息并用Response.End命令中断.asp执行防止连续反复投票其流程如图1:
screen.width-333)this.width=screen.width-333\" border=0>
从思路方法到思路方法 4安全性越来越高防止重复连续投票功能越来越强但是各种思路方法都有各自局限性在应用中用户应根据实际情况选择合适思路方法如果小范围投票思路方法 4无疑是最好;如果在Internet上投票思路方法 3是最好另外点必须提及是:虽然Application有保存变量功能但是我们没有用到Application变量是个全局性变量如果用Application把IsVoted设为TRUE则任何用户都无法投票;如果用Application把IsVoted设为FALSE则任何用户都可以投票就没有任何防范功能了.
Tags:  如何防止重复提交 防止重复编译 防止重复提交

延伸阅读

最新评论

发表评论