主页 > 知识库 > asp防止刷新功能实现代码

asp防止刷新功能实现代码

热门标签:电子围栏 科大讯飞语音识别系统 Linux服务器 Mysql连接数设置 团购网站 服务器配置 银行业务 阿里云
使用说明
1.在要保护的页面顶部加如对AntiRefresh.asp文件的引用如:
!--#include virtual="AntiRefresh.asp" -->
2.接着添加调用代码
复制代码 代码如下:

%
Const VarNameDateArr="www_domai_net_App_DataArr" '队列名称
Const VarNameIPArr="www_domai_net_App_IPArr" '队列名称
Dim objAntiRefresh
Set objAntiRefresh= new AntiRefresh
objAntiRefresh.BufferSize=100 '队列大小
objAntiRefresh.CacheItemAvailTime=2 '间隔时间
If Not objAntiRefresh.IsValidAccess() Then
Set objAntiRefresh=Nothing
Response.Write("您的访问过去频繁请2秒后再试.")
Response.End()
End If
Set objAntiRefresh=Nothing
%>

其中要注意的是
Const VarNameDateArr="www_domai_net_App_DataArr" '队列名称
Const VarNameIPArr="www_domai_net_App_IPArr" '队列名称
比方你要在List.asp与search.asp中加入通一个防刷新器,那么你把上面的调用代码分别复制到这两个页面,或者保证两个页面的掉用代码一致。这样的效果是,你访问了List.asp页那么你在2秒内将不能访问List.asp或Search.asp页
如果你要2个页面独立,即你访问List.asp后,你会在2秒内不能再次访问List.asp,但是你可以访问Search.asp,反之毅然,那么你就要保证2个页面的 Const VarNameDateArr="xxx",Const VarNameIPArr="xxx"不同,比方第一个也面你用xxxList,第个个页面用xxxSearch,
如:
Const VarNameDateArr="www_domai_net_App_DataArr_Search" '(_List)
Const VarNameIPArr="www_domai_net_App_IPArr_Search" '(_List)
唠叨这些是给那么不太懂的朋友,以便他们能使用这些代码,如果你懂Asp那么以上的对你来说就很好理解了。
下面是AntiRefresh.asp文件源码
复制代码 代码如下:

%
'***************************************
'* 页面防刷新模块 *
'* WDFrog,2007-8-16
'***************************************
Class AntiRefresh
Private IPArr,DateArr
Private m_BufferSize
Private m_CacheItemAvailTime
Private Sub Class_Initialize()
Application.Lock()
m_BufferSize=100
m_CacheItemAvailTime=2
End Sub
Private Sub Class_Terminate()
Application.UnLock()
End Sub
Public Property Get CacheItemAvailTime
CacheItemAvailTime=m_CacheItemAvailTime
End Property
Public Property Let CacheItemAvailTime(Value)
m_CacheItemAvailTime=Value
End Property
Public Property Get BufferSize
BufferSize=m_BufferSize
End Property
Public Property Let BufferSize(Value)
m_BufferSize=Value
End Property
Private Sub EnsureArr()
If IsArray(Application(VarNameDateArr)) Then
DateArr=Application(VarNameDateArr)
Else
ReDim DateArr(BufferSize)
End If
If IsArray(Application(VarNameIPArr)) Then
IPArr=Application(VarNameIPArr)
Else
ReDim IPArr(BufferSize)
End If
End Sub
Public Function IsValidAccess()
Dim ip,i
ip=GetIP()
IsValidAccess=True
EnsureArr()
For i=1 To BufferSize
If IPArr(i)=ip Then
If DateDiff("s",CDate(DateArr(i)),Now()) CacheItemAvailTime Then
IsValidAccess=False
Exit Function
End If
End If
Next
Call QueueHandle()
DateArr(1)=Now()
IPArr(1)=ip
Application(VarNameIPArr)=IPArr
Application(VarNameDateArr)=DateArr
End Function
Public Function ClearCache()
Set Application(VarNameDateArr)=Nothing
Set Application(VarNameIPArr)=Nothing
End Function
Private Sub QueueHandle()
Dim i,j
For i=BufferSize-1 To 1 Step -1
DateArr(i+1)=DateArr(i)
Next
For j=BufferSize-1 To 1 Step -1
IPArr(j+1)=IPArr(j)
Next
End Sub
Private Function GetIP()
Dim strIPAddr
If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" OR InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then
strIPAddr = Request.ServerVariables("REMOTE_ADDR")
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)
ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then
strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)
Else
strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
End If
GetIP = (Trim(Mid(strIPAddr, 1, 30)))
End Function
End Class
%>


asp防止刷新
复制代码 代码如下:

Sub chkreflash()
    dim ScriptName
    ScriptName=lcase(request.ServerVariables("PATH_INFO"))
    dim posttime,DoReflashPage,ReflashPage,SplitReflashPage
    posttime=1 '防止刷新时间
    DoReflashPage=false
    ReflashPage="|Article_one.asp"
    SplitReflashPage=split(ReflashPage,"|")
        for i=0 to ubound(SplitReflashPage)
             if instr(scriptname,SplitReflashPage(i))>0 then
                DoReflashPage=true
            exit for
             end if
        next
    if (not isnull(session("ReflashTime"))) and posttime>0 and DoReflashPage then
        if DateDiff("s",session("ReflashTime"),Now())posttime then
            call msg("警告!系统已记录您的IP,和刷新次数。\n\n请不要在"posttime"秒内连续刷新本页面!","-1")
        else
        session("ReflashTime")=Now()
        end if
    elseif isnull(session("ReflashTime")) and posttime>0 and DoReflashPage then
        Session("ReflashTime")=Now()
    end if
End Sub

调用方法在页面首部加入chkreflash即可
您可能感兴趣的文章:
  • ASP.Net防止刷新自动触发事件的解决方案
  • 用Asp如何实现防止网页频繁刷新?
  • ASP.Net中防止刷新自动触发事件的解决方案
  • asp.net防止刷新时重复提交(可禁用工具条刷新按钮)
  • Asp.Net防止刷新重复提交数据的办法
  • ASP.NET防止页面刷新的两种解决方法小结
  • php环境下利用session防止页面重复刷新的具体实现
  • php防止网站被刷新的方法汇总
  • PHP防止刷新重复提交页面的示例代码
  • php采用session实现防止页面重复刷新
  • ASP.NET中防止页面刷新造成表单重复提交执行两次操作

标签:蚌埠 大理 广元 萍乡 江苏 枣庄 衡水 衢州

巨人网络通讯声明:本文标题《asp防止刷新功能实现代码》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266