asp防止刷新功能實現代碼
2024-05-04 11:03:05
供稿:網友
使用說明
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