大雀软件园

首页 软件下载 安卓市场 苹果市场 电脑游戏 安卓游戏 文章资讯 驱动下载
技术开发 网页设计 图形图象 数据库 网络媒体 网络安全 站长CLUB 操作系统 媒体动画 安卓相关
当前位置: 首页 -> 技术开发 -> ASP专区 -> 防止网上重复投票的方法(一)

防止网上重复投票的方法(一)

时间: 2021-07-31 作者:daque

网上观察是赶快搜集消息的灵验本领,然而暂时局部网站的网上观察生存一个不及之处,即任何用户按照本人的喜好不妨贯串重复开票。由于一切的观察截止都是为计划作参考,尽管对一个单元仍旧一个部分,计划错误城市带来预见不到的丢失,以是提防反复开票具备要害意旨。正文所给出的鉴于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 theniscookiesopen = 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(“sessionid") = session.sessionid url =“_page_=”&request.servervariables (“path_info") querystring=request.servervariables (“query_string") if len(querystring) > 0 then url = url & “&" & querystring if not response.isclientconnected then clearapp end function sub clearapp() application(“visit") = 0 application(“ip") = “" end sub % > 在.asp文献市直接用iscookiesopen()因变量来判决 cookies能否翻开。此种本领的缺点:即使再翻开一个新欣赏器窗口,会发此刻新翻开的欣赏器窗口中仍旧不妨开票。这是由于session是独占的,一个session中变量的变换并不感化另一个session的同名变量的值。为领会决这个题目,底下给出本领二。

热门阅览

最新排行

Copyright © 2019-2021 大雀软件园(www.daque.cn) All Rights Reserved.