聊城网站制作公司,聊城网站建设,聊城网站优化,聊城网络公司,聊城网站推广,聊城网站运营,聊城网络运营,聊城搜索引擎优化,聊城网页设计,聊城网站制作
 
 
公司拥有五年的网站建设经验,专业网站制作,推广及网站优化,有大量优秀客户案例
网站建设 | 设为首页 | 加入收藏 | 联系我们  
公告:热烈庆祝聊城精英网络2010版官方网站改版成功!
当前位置 :首页 > 网页知识  

ASP投票系统限制投票间隔时间

http://www.wangzhan123.net   2011-9-16 20:12:25 来源:聊城网络公司 作者:红点   人气:
对于投票系统来说,安全性是非常重要的。一个投票系统的好坏,特别体现在防止刷票,同IP短时间内多次投票等安全问题上,下面通过个实例来解决如何限制投票间隔时间。
   近期我和同学处理关于一个医院护士节投票系统的限制时间间隔问题就是通过下面这种方法来解决的。

主要利用到了datediff,这个函数。

程序代码
If Request.Form("submit")="投票" Then
    If RestrictIP=True Then
        fIP=Request.ServerVariables("Remote_Addr")
        Set rs=Server.CreateObject("ADODB.RecordSet")
        rs.open "Select * from NF_IP where sid="&sid&" and ip='"&fIP&"' and datediff('h',vtime,now())<"&refuseTime,conn,1,3
        If not(rs.eof and rs.bof) Then
            Response.Write "<script>alert('你已经投过票了!');window.close()</script>"
            Response.End
        Else
            rs.addnew
            rs("sid")=sid
            rs("ip")=fIP
            rs("vtime")=now()
            rs.update
        End If
        rs.close
        Set rs=nothing
        conn.execute("delete from NF_IP where datediff('h',vtime,now())>="&refuseTime)
    End If 


注:
vtime----投票者投票的时间
now()--系统现在的时间
refusetime--间隔时间(可根据需要在前台设置,这里单位为小时h)

核心在下面这句话:
conn.execute("delete from NF_IP where datediff('h',vtime,now())>="&refuseTime)
如果datediff('h',vtime,now)的值,也就是投票时间与系统现在的时间间隔大于所设置的refusetime(前台设置的投票时间间隔),那么删除掉那条记录。这样就限制了每个IP在同一时间间隔内只能投一票。

关于datediff('h',vtime,now)
datadiff这个函数是取得两个日期时间值的差,第一个参数"h",表示取后面两个时间值的小时部分的差值。
专业设计团队
满足您的各种设计要求
实力程序开发团队
为您定制各种程序模块
后台管理高效安全
方便更新上传网站资料
全球高速访问
无盲区、定制异地备份
专业客服团队
解决一切使用难题
赠送大容量空间邮箱
免费优化推广
   
关于我们 | 工作机会 | 付款方式 | 网站制作 | 网页制作 | 网页设计 | 网络公司 | 联系我们 | 网站地图
版权所有:聊城精英网络科技有限公司 © 2005-2010 All Rights Reserved.
咨询专线:0635-6950368 技术专线:15192175820 在线QQ:312817927 1485871644
地址:聊城市闸口科技市场 邮编:252000 苏ICP备10112026号