• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    asp防止刷新功能实现代码
    使用说明
    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代码 原创
    下一篇:jb51生成所有页面的效果+分页生成 原创
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    asp防止刷新功能实现代码 asp,防止,刷,新功能,实现,