ICANN认证国际域名顶级注册机构
网站建设,域名注册,空间租用,软件销售,广告设计 域名注册,空间租用, 网站建设,东莞网页设计,域名注册,网站推广,网站开发,网页设计 网站推广,,百度推广,新浪推广,雅虎推广,网易推广 标志设计,画册设计,包装设计,VI策划,企业形象顾问 连邦软件加盟店,提供销遥行,管家婆,速达,用友ERP,诺顿等软件报价及销售 建站必读 腾达网络,上网帮助中心, 腾达为东莞等地,提供网站建设,网站推广,广告设计,软件销售等优质服务!
建站必读


 
 
当前位置:首页 -> 建站必读 -> ASP技术
防止网上重复投票的方法(一)
网上调查是快速收集信息的有效方法,但是目前部分网站的网上调查存在一个不足之处,即任何用户根据自己的爱好可以连续反复投票。因为所有的调查结果都是为决策作参考,不管对一个单位还是一个部门,决策失误都会带来意想不到的损失,所以防止重复投票具有重要意义。本文所给出的基于ASP(Active Server Page)的几种方法在一定程度上可以防止连续反复投票。  



ASP对象  

在ASP中有5个对象:Request、Response、Session、 Application、Server。下面只针对本文能用到的对象属性进行说明,其他方面的属性请参考相关资料。本文提供的方法的原理是:设置一个逻辑变量IsVoted,在投票之前验证IsVoted 的值,只有值为False时,才能投票,否则就认为已投过票。  

Application对象是处理某一特定ASP应用中所有用户共享信息的对象,也就是说Application对象是所有联网机器上所有网页所共享的对象。由 Application对象所定义和设置的变量,所有用户的所有网页均可访问。利用Application对象可以定义变量以及改变变量的值,其语法格式如下: Application(“变量名”)=表达式。在.asp 文件中可通过Application(“变量名”)加以引用。Application把变量的值保存在Web Server 端。  



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



Cookies对象是不能单独存在的,它依附于Request和 Response对象,在使用时必须在Cookies前加上Request或Response。同Application和Session 一样,Cookies也能保存变量的值,但是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四个事件,我们在Application_OnStart、Session_OnStart事件中定义 Application变量和Session变量以及进行初始化,这样在以后的网页中就可以读取这些变量。 ASP在下列情况下读取Global.asa内容:  



1.在Web Server启动之后,第一次请求调用ASP应用中的任何.asp文件时;  



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



方法一:利用Session对象  

在Global.asa的Session_OnStart事件中设置逻辑变量 IsVoted,初始值为FALSE(表示还没有投票),投票之后在.asp程序中把IsVoted的值改为TRUE(表示已投过票)。每次投票之前都要判断IsVoted的值。如果IsVoted的值为TRUE,就不能再投票;如果值为FALSE,则可以投票。  

因为Session对象的使用必须与浏览器的Cookies功能相配合,所以在判断IsVoted值之前,必须先判断浏览器的Cookies功能是否打开。如处于关闭状态,则此种方法失效,所以在这种情况下必须给出提示信息并用Response.End命令中断.asp程序的执行,防止连续反复投票。其流程如图1:









其中判断Cookies是否打开的函数比较复杂,现给出函数实现代码(VBScript)。  



< %

Function IsCookiesOpen()

Dim ClientIP, URL, QueryString, IsNew



Application.Lock

If Session(“SessionID")=Session.SessionID Then  

IsCookiesOpen = True

ClearApp

Exit Function

End If



IsNew = False

If Session(“SessionID") = Empty Then

CurrentIP =Request.ServerVariables

(“REMOTE_ADDR")

If CurrentIP <> Application(“IP") Then

ClearApp

IsNew = True

End If

End If

If Not IsNew And Application(“Visit") >= 1 Then

IsCookiesOpen = False

ClearApp

Exit Function

End If

Application(“Visit") = Application(“Visit") + 1

Application(“IP") =Request.ServerVariables

(“REMOTE_ADDR")

Session(a
 
 
本站关键词:
|东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计||东莞国内域名注册|做网站|设计网站|东莞虚拟主机|东莞asp空间|东莞主机托管|东莞画册设计|东莞包装设计|东莞产品目录设计|东莞产品推广策划|东莞VI设计|东莞企业形像设计|
域名注册 | 虚拟主机 | 网站建设 | 网站推广 | 广告设计 | 帮助中心 | 软件中心 | 关于腾达
东莞市腾达信息工程有限公司      本站网络实名: 东莞网站建设
地址:东莞市新城市中心区第一国际B座610   邮编:523007
电话:0769-22026071 22026072 传真:0769-22026076 24小时服务热线:13712032014
© 2002~2005 腾达网络   版权所有