推薦:Asp class一個標籤引擎類tagEngine.Class一個用來實現tag功能的asp類,具體的作用,如果您可以讀懂的話就可以明白了了。 修改記錄: 1,增加擴展函數,2006-12-3 % '****************************** '類名:tagEngine '名稱:標籤引擎'日期:2006-11-29 '作者:西樓冷月'網址:www.xilou.net | www.
作者真是細緻,把這些東西都封裝成為class了。有點過了,這些東西可以作成過程或者函數來封裝,sub和function也是封裝,不一定非要class才可以。您的文件庫不一定全部都是class,一些sub和funtion都是必要的。
實現的功能包括
1,showInfo(e_title,c_url,e_num,e_des,e_time,opera,ip,reurl):顯示錯誤信息
2,getIP():取得客戶IP
3,checkPost():驗證是否是站外提交
4,getReferer():來路記錄
5,getCurURL():取得當前頁面路徑
6,isRefresh(s1,s2,maxtimes):防刷新
完整代碼:
<%
'******************************
'名稱:eventProvider(事件類)
'日期:2006/11/24
'作者:西樓冷月
'網址:www.CuoXIn.com
'描述:無
'版權:轉載請註名出處,作者
'******************************
'最後修改:2006/11/24
'修改次數:0
'修改說明:無
'目前版本:v1.0.0
'******************************
Class eventProvider
Private logDBName'日誌表名
'www.CuoXIn.com 設計家園
'初始化
Private Sub Class_Initialize()
logDBName=LogInfo
End Sub
'
Private Sub Class_Terminate()
End Sub
'預定義事件的標題,也可以說是類型
Public Function eventTitles(typenum)
Dim arrType(9)
arrType(0)=未知事件
arrType(1)=非法的用戶登陸
arrType(2)=URL傳遞非法參數
arrType(3)=登陸傳入非法字符
arrType(4)=登陸頻繁,超過規定時間內登陸次數
arrType(5)=查詢傳入非法字符
arrType(6)=查詢頻繁,超過規定時間內查詢次數
arrType(7)=頁面刷新頻繁,超過規定時間內刷新次數
arrType(8)=站外提交數據
arrType(9)=後台登陸
If Not IsNumeric(typenum) Then eventTitles=未知事件:Exit Function
If CLng(Abs(typenum))>UBound(arrType) Then
eventTitles=未知事件:Exit Function
End If
eventTitles=arrType(typenum)
End Function
'預定數組顯示錯誤
Public Sub showArrayInfo(infoitems,infovalues)
Dim str
str=<div style='border:2px solid #4E4E9C;font-family:arial ;color:#800040;width:50%;font-size:9pt'>
str=str&<ul style='margin:20px;'><b>Asp Event Infomation:</b>&vbcrlf
If IsArray(infoitems) And IsArray(infovalues) Then
For I=LBound(infoitems) To UBound(infoitems)
str=str&<li><b style='color:#4E4E9C'>&infoitems(I)&:</b>&infovalues(I)&vbcrlf
Next
Else
str=str&<li><b>&infoitems&</b>:&infovalues&vbcrlf
End If
str=str&</ul></div>&vbcrlf
Response.Write str
End Sub
'顯示錯誤
Public Sub showInfo(e_title,c_url,e_num,e_des,e_time,opera,ip,reurl)
Dim infoitems,infovalues
infoitems=Array(Event Title,Event Url,EventNumber,EventDescription,_
EventTime,Operator,IP,Referer Url_
)
infovalues=Array(e_title,c_url,e_num,e_des,e_time,opera,ip,reurl)
showArrayInfo infoitems,infovalues
End Sub
'顯示原文件的有關信息
Public Sub showOriInfo(oriclass,orifunction,oripage)
Dim infoitems,infovalues
infoitems=Array(Original class,Original function,Original page)
infovalues=Array(oriclass,orifunction,oripage)
showArrayInfo infoitems,infovalues
End Sub
'獲取ip
Public Function getIP()
Dim IP
'如果客戶端用了代理服務器,則應該用ServerVariables(HTTP_X_FORWARDED_FOR)方法
IP = Request.ServerVariables(HTTP_X_FORWARDED_FOR)
If IP = or isnull(IP) or isempty(IP) Then
'如果客戶端沒用代理,應該用Request.ServerVariables(REMOTE_ADDR)方法
IP = Request.ServerVariables(REMOTE_ADDR)
end if
getIP = IP
End Function
'站外提交驗證
Public Function checkPost()
Dim server_v1,server_v2
checkPost=False
server_v1=Cstr(Request.ServerVariables(HTTP_REFERER))
server_v2=Cstr(Request.ServerVariables(SERVER_NAME))
If Mid(server_v1,8,len(server_v2))=server_v2 Then checkPost=True
End Function
'獲取來路
Public Function getReferer()
getReferer=Request.ServerVariables(HTTP_REFERER)
End Function
'得到瀏覽器目前的URL
Public Function getCurURL()
If Request.ServerVariables(HTTPS) = on Then
GetCurrentURL = https://
Else
GetCurrentURL = http://
End If
GetCurURL = GetCurURL & Request.ServerVariables(SERVER_NAME)
If (Request.ServerVariables(SERVER_PORT) <> 80) Then GetCurURL = GetCurURL & : & Request.ServerVariables(SERVER_PORT)
GetCurURL = GetCurURL & Request.ServerVariables(URL)
If (Request.QueryString <> ) Then GetCurURL = GetCurURL & ? & Request.QueryString
End Function
'獲取來路或得到瀏覽器目前的URL,綜合前面兩個
Public Function getUrl(t)
If t=1 Then
getUrl=getCurURL()
Else
getUrl=getReferer()
End If
End Function
'防刷新
's1:超過s1秒後才允許訪問
's2:如果現在時間和上次訪問時間相差s2秒則視為刷新頻繁
'maxtimes:如果頻繁刷新次數等於或大於maxtimes次則記錄
'如果是刷新頻繁則isRefresh=true,否則為false
Public Function isRefresh(s1,s2,maxtimes)
Dim CacheName
CacheName=eventProvider_2006
If IsDate(Session(CacheName&IsRefreshTime)) Then'超過s1秒後才允許訪問
If DateDiff(s,Session(CacheName&IsRefreshTime),Now())>s1 Then
Session(CacheName&IsRefreshTime)=Now()
Session(CacheName&IsRefresh)=False
End If
End If
If Session(CacheName&IsRefresh)=True Then
isRefresh=True
Else
isRefresh=False
End If
If IsDate(Session(CacheName&RefreshStart)) Then
If DateDiff(s,Session(CacheName&RefreshStart),Now())<s2 Then'//如果現在時間和上次訪問時間相差s2秒則視為刷新頻繁
Session(CacheName&RefreshT)=Session(CacheName&RefreshT)+1'//統計頻繁刷新次數
If Session(CacheName&RefreshT)>=maxtimes Then'//如果頻繁刷新次數等於或大於maxtimes次則記錄
Session(CacheName&IsRefresh)=True
Session(CacheName&IsRefreshTime)=Now()
End If
Else
Session(CacheName&RefreshT)=0'//如果不是,則把記錄頻繁刷新次數變為0
End If
End If
Session(CacheName&RefreshStart)=Now()'//保留這一次訪問的時間到下次訪問時用
End Function
'寫入數據庫日誌
Public Sub writeToDB(e_title,c_url,e_num,e_des,e_time,opera,ip,reurl,conn)
Dim sql
sql=Insert INTO &logDBName&(eTitle,eUrl,eNum,eDes,eTime,Operator,IP,RefererUrl) VALUES(
sql=sql&'&e_title&','&c_url&','&e_num&','&e_des&','&e_time&','&opera&','&ip&','&reurl&')
conn.Execute(sql)
End Sub
End Class
%>
分享:Asp+Ajax實現無刷新增加好友由於工作關係,要做個人空間,其中有一功能是增加對方為好友.如圖: 用到的方法是ajax,費話少說貼切代碼: a href=javascript:void(0); onClick =add_username('%= rs(username) %');加為好友/a,用到的js驗證: script language = JavaScript src=ajax.