网上调查是快速收集信息
![](/icons/25799de.gif)
有效思路方法
![](/icons/25799dou.gif)
但是目前部分网站WebSite
![](/icons/25799de.gif)
网上调查存在
![](/icons/25799yi.gif)
个不足的处
![](/icons/25799dou.gif)
即任何用户根据自己
![](/icons/25799de.gif)
爱好可以连续反复投票
![](/icons/25799dou2.gif)
![](/icons/25799yinwei.gif)
所有
![](/icons/25799de.gif)
调查结果都是为决策作参考
![](/icons/25799dou.gif)
不管对
![](/icons/25799yi.gif)
个单位还是
![](/icons/25799yi.gif)
个部门
![](/icons/25799dou.gif)
决策失误都会带来意想不到
![](/icons/25799de.gif)
损失
![](/icons/25799dou.gif)
所以防止重复投票具有重要意义
![](/icons/25799dou2.gif)
本文所给出
![](/icons/25799de.gif)
基于ASP(ActiveServerPage)
![](/icons/25799de.gif)
几种思路方法在
![](/icons/25799yi.gif)
定程度上可以防止连续反复投票
![](/icons/25799dou2.gif)
ASP对象
在ASP中有5个对象:Request、Response、Session、Application、Server
![](/icons/25799dou2.gif)
下面只针对本文能用到
![](/icons/25799de.gif)
对象属性进行介绍说明
![](/icons/25799dou.gif)
其他方面
![](/icons/25799de.gif)
属性请参考相关资料
![](/icons/25799dou2.gif)
本文提供
![](/icons/25799de.gif)
思路方法
![](/icons/25799de.gif)
原理是:设置
![](/icons/25799yi.gif)
个逻辑变量IsVoted
![](/icons/25799dou.gif)
在投票的前验证IsVoted
![](/icons/25799de.gif)
值
![](/icons/25799dou.gif)
只有值为False时
![](/icons/25799dou.gif)
才能投票
![](/icons/25799dou.gif)
否则就认为已投过票
![](/icons/25799dou2.gif)
Application对象是处理某
![](/icons/25799yi.gif)
特定ASP应用中所有用户共享信息
![](/icons/25799de.gif)
对象
![](/icons/25799dou.gif)
也就是说Application对象是所有联网机器上所有网页所共享
![](/icons/25799de.gif)
对象
![](/icons/25799dou2.gif)
由Application对象所定义和设置
![](/icons/25799de.gif)
变量
![](/icons/25799dou.gif)
所有用户
![](/icons/25799de.gif)
所有网页均可访问
![](/icons/25799dou2.gif)
利用Application对象可以定义变量以及改变变量
![](/icons/25799de.gif)
值
![](/icons/25799dou.gif)
其语法格式如下:Application(“变量名”)=表达式
![](/icons/25799dou2.gif)
在.asp文件中可通过Application(“变量名”)加以引用
![](/icons/25799dou2.gif)
Application把变量
![](/icons/25799de.gif)
值保存在WebServer端
![](/icons/25799dou2.gif)
Session对象用于单个用户管理信息
![](/icons/25799dou.gif)
Session变量只在页面间
![](/icons/25799diaoyong.gif)
(即在
![](/icons/25799yi.gif)
个Session内)
![](/icons/25799dou2.gif)
Session变量是私有
![](/icons/25799de.gif)
![](/icons/25799dou.gif)
![](/icons/25799yi.gif)
个Session中某个变量值
![](/icons/25799de.gif)
改变不影响另
![](/icons/25799yi.gif)
个Session中同名变量
![](/icons/25799de.gif)
值
![](/icons/25799dou2.gif)
Session对象也把变量值保存在服务器端
![](/icons/25799dou.gif)
但是各个Session保存
![](/icons/25799de.gif)
位置区别
![](/icons/25799dou2.gif)
![](/icons/25799yinwei.gif)
Session是私有
![](/icons/25799de.gif)
![](/icons/25799dou.gif)
所以有多少个Session对象就存在多少个IsVoted变量
![](/icons/25799dou.gif)
这些变量的间没有关系
![](/icons/25799dou2.gif)
Cookies对象是不能单独存在
![](/icons/25799de.gif)
![](/icons/25799dou.gif)
它依附于Request和Response对象
![](/icons/25799dou.gif)
在使用时必须在Cookies前加上Request或Response
![](/icons/25799dou2.gif)
同Application和Session
![](/icons/25799yi.gif)
样
![](/icons/25799dou.gif)
Cookies也能保存变量
![](/icons/25799de.gif)
值
![](/icons/25799dou.gif)
但是Cookies只在浏览器客户端保存变量
![](/icons/25799de.gif)
值
![](/icons/25799dou2.gif)
用Cookies所定义
![](/icons/25799de.gif)
变量有
![](/icons/25799yi.gif)
个属性:可以设置Cookies变量
![](/icons/25799de.gif)
使用期限
![](/icons/25799dou.gif)
而且
![](/icons/25799yi.gif)
旦设置了使用期限
![](/icons/25799dou.gif)
Cookies变量可以被从同
![](/icons/25799yi.gif)
台机器上登录
![](/icons/25799de.gif)
所有用户所共享
![](/icons/25799dou.gif)
我们可以利用Cookies
![](/icons/25799de.gif)
这个属性设置间隔
![](/icons/25799yi.gif)
定时间才能再次投票
![](/icons/25799dou2.gif)
Server对象主要完成
![](/icons/25799yi.gif)
些需要WWW服务器处理
![](/icons/25799de.gif)
工作
![](/icons/25799dou.gif)
本文中我们主要利用Request.ServerVariables读取Server
![](/icons/25799de.gif)
环境变量中客户端
![](/icons/25799de.gif)
IP地址
![](/icons/25799dou.gif)
并根据IP地址来设定相隔多长时间同
![](/icons/25799yi.gif)
IP地址才能再次投票
![](/icons/25799dou2.gif)
Global.asa文件完成共享变量和文件
![](/icons/25799de.gif)
定义及
![](/icons/25799chushi.gif)
化任务
![](/icons/25799dou2.gif)
Global.asa文件必须位于ASP应用
![](/icons/25799de.gif)
根目录下
![](/icons/25799dou.gif)
![](/icons/25799yi.gif)
个ASP应用只能有
![](/icons/25799yi.gif)
个Global.asa文件
![](/icons/25799dou2.gif)
Global.asa中含有Application_OnStart、Application_OnEnd、Session_OnStart、Session_OnEnd 4个事件
![](/icons/25799dou.gif)
我们在Application_OnStart、Session_OnStart事件中定义Application变量和Session变量以及进行
![](/icons/25799chushi.gif)
化
![](/icons/25799dou.gif)
这样在以后
![](/icons/25799de.gif)
网页中就可以读取这些变量
![](/icons/25799dou2.gif)
ASP在下列情况下读取Global.asa内容:
1.在WebServer启动的后
![](/icons/25799dou.gif)
第
![](/icons/25799yi.gif)
次请求
![](/icons/25799diaoyong.gif)
ASP应用中
![](/icons/25799de.gif)
任何.asp文件时;
2.不在Session状态
![](/icons/25799de.gif)
用户请求
![](/icons/25799diaoyong.gif)
ASP应用
![](/icons/25799de.gif)
.asp文件
![](/icons/25799dou2.gif)
思路方法
![](/icons/25799yi.gif)
:利用Session对象
在Global.asa
![](/icons/25799de.gif)
Session_OnStart事件中设置逻辑变量IsVoted
![](/icons/25799dou.gif)
![](/icons/25799chushi.gif)
值为FALSE(表示还没有投票)
![](/icons/25799dou.gif)
投票的后在.asp
![](/icons/25799chengxu.gif)
中把IsVoted
![](/icons/25799de.gif)
值改为TRUE(表示已投过票)
![](/icons/25799dou2.gif)
每次投票的前都要判断IsVoted
![](/icons/25799de.gif)
值
![](/icons/25799dou2.gif)
如果IsVoted
![](/icons/25799de.gif)
值为TRUE
![](/icons/25799dou.gif)
就不能再投票;如果值为FALSE
![](/icons/25799dou.gif)
则可以投票
![](/icons/25799dou2.gif)
![](/icons/25799yinwei.gif)
Session对象
![](/icons/25799de.gif)
使用必须和浏览器
![](/icons/25799de.gif)
Cookies功能相配合
![](/icons/25799dou.gif)
所以在判断IsVoted值的前
![](/icons/25799dou.gif)
必须先判断浏览器
![](/icons/25799de.gif)
Cookies功能是否打开
![](/icons/25799dou2.gif)
如处于关闭状态
![](/icons/25799dou.gif)
则此种思路方法失效
![](/icons/25799dou.gif)
所以在这种情况下必须给出提示信息并用Response.End命令中断.asp
![](/icons/25799chengxu.gif)
![](/icons/25799de.gif)
执行
![](/icons/25799dou.gif)
防止连续反复投票
![](/icons/25799dou2.gif)
其流程如图1:
screen.width-333)this.width=screen.width-333\" border=0>
从思路方法
![](/icons/25799yi.gif)
到思路方法 4
![](/icons/25799dou.gif)
安全性越来越高
![](/icons/25799dou.gif)
防止重复连续投票功能越来越强
![](/icons/25799dou.gif)
但是各种思路方法都有各自
![](/icons/25799de.gif)
局限性
![](/icons/25799dou2.gif)
在应用中
![](/icons/25799dou.gif)
用户应根据实际情况选择合适
![](/icons/25799de.gif)
思路方法
![](/icons/25799dou2.gif)
如果小范围投票
![](/icons/25799dou.gif)
思路方法 4无疑是最好
![](/icons/25799de.gif)
;如果在Internet上投票
![](/icons/25799dou.gif)
思路方法 3是最好
![](/icons/25799de.gif)
![](/icons/25799dou2.gif)
另外
![](/icons/25799yi.gif)
点必须提及
![](/icons/25799de.gif)
是:虽然Application有保存变量
![](/icons/25799de.gif)
功能
![](/icons/25799dou.gif)
但是我们没有用到
![](/icons/25799dou2.gif)
![](/icons/25799yinwei.gif)
Application变量是
![](/icons/25799yi.gif)
个全局性变量
![](/icons/25799dou.gif)
如果用Application把IsVoted设为TRUE
![](/icons/25799dou.gif)
则任何用户都无法投票;如果用Application把IsVoted设为FALSE
![](/icons/25799dou.gif)
则任何用户都可以投票
![](/icons/25799dou.gif)
就没有任何防范功能了.
延伸阅读
最新评论