推薦:Asp class一個(gè)標(biāo)簽引擎類tagEngine.Class一個(gè)用來(lái)實(shí)現(xiàn)tag功能的asp類,具體的作用,如果您可以讀懂的話就可以明白了了。 修改記錄: 1,增加擴(kuò)展函數(shù),2006-12-3 % '****************************** '類名:tagEngine '名稱:標(biāo)簽引擎 '日期:2006-11-29 '作者:西樓冷月 '網(wǎng)址:www.xilou.net | www.
作者真是細(xì)致,把這些東西都封裝成為class了。有點(diǎn)過了,這些東西可以作成過程或者函數(shù)來(lái)封裝,sub和function也是封裝,不一定非要class才可以。您的文件庫(kù)不一定全部都是class,一些sub和funtion都是必要的。
實(shí)現(xiàn)的功能包括
1,showInfo(e_title,c_url,e_num,e_des,e_time,opera,ip,reurl):顯示錯(cuò)誤信息
2,getIP():取得客戶IP
3,checkPost():驗(yàn)證是否是站外提交
4,getReferer():來(lái)路記錄
5,getCurURL():取得當(dāng)前頁(yè)面路徑
6,isRefresh(s1,s2,maxtimes):防刷新
完整代碼:
<%
'******************************
'名稱:eventProvider(事件類)
'日期:2006/11/24
'作者:西樓冷月
'網(wǎng)址:www.CuoXIn.com
'描述:無(wú)
'版權(quán):轉(zhuǎn)載請(qǐng)注名出處,作者
'******************************
'最后修改:2006/11/24
'修改次數(shù):0
'修改說(shuō)明:無(wú)
'目前版本:v1.0.0
'******************************
Class eventProvider
Private logDBName'日志表名
'www.CuoXIn.com 設(shè)計(jì)家園
'初始化
Private Sub Class_Initialize()
logDBName="LogInfo"
End Sub
'
Private Sub Class_Terminate()
End Sub
'預(yù)定義事件的標(biāo)題,也可以說(shuō)是類型
Public Function eventTitles(typenum)
Dim arrType(9)
arrType(0)="未知事件"
arrType(1)="非法的用戶登陸"
arrType(2)="URL傳遞非法參數(shù)"
arrType(3)="登陸傳入非法字符"
arrType(4)="登陸頻繁,超過規(guī)定時(shí)間內(nèi)登陸次數(shù)"
arrType(5)="查詢傳入非法字符"
arrType(6)="查詢頻繁,超過規(guī)定時(shí)間內(nèi)查詢次數(shù)"
arrType(7)="頁(yè)面刷新頻繁,超過規(guī)定時(shí)間內(nèi)刷新次數(shù)"
arrType(8)="站外提交數(shù)據(jù)"
arrType(9)="后臺(tái)登陸"
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
'預(yù)定數(shù)組顯示錯(cuò)誤
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
'顯示錯(cuò)誤
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
'顯示原文件的有關(guān)信息
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
'如果客戶端用了代理服務(wù)器,則應(yīng)該用ServerVariables("HTTP_X_FORWARDED_FOR")方法
IP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If IP = "" or isnull(IP) or isempty(IP) Then
'如果客戶端沒用代理,應(yīng)該用Request.ServerVariables("REMOTE_ADDR")方法
IP = Request.ServerVariables("REMOTE_ADDR")
end if
getIP = IP
End Function
'站外提交驗(yàn)證
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
'獲取來(lái)路
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
'獲取來(lái)路或得到瀏覽器目前的URL,綜合前面兩個(gè)
Public Function getUrl(t)
If t=1 Then
getUrl=getCurURL()
Else
getUrl=getReferer()
End If
End Function
'防刷新
's1:超過s1秒后才允許訪問
's2:如果現(xiàn)在時(shí)間和上次訪問時(shí)間相差s2秒則視為刷新頻繁
'maxtimes:如果頻繁刷新次數(shù)等于或大于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'//如果現(xiàn)在時(shí)間和上次訪問時(shí)間相差s2秒則視為刷新頻繁
Session(CacheName&"RefreshT")=Session(CacheName&"RefreshT")+1'//統(tǒng)計(jì)頻繁刷新次數(shù)
If Session(CacheName&"RefreshT")>=maxtimes Then'//如果頻繁刷新次數(shù)等于或大于maxtimes次則記錄
Session(CacheName&"IsRefresh")=True
Session(CacheName&"IsRefreshTime")=Now()
End If
Else
Session(CacheName&"RefreshT")=0'//如果不是,則把記錄頻繁刷新次數(shù)變?yōu)?
End If
End If
Session(CacheName&"RefreshStart")=Now()'//保留這一次訪問的時(shí)間到下次訪問時(shí)用
End Function
'寫入數(shù)據(jù)庫(kù)日志
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實(shí)現(xiàn)無(wú)刷新增加好友由于工作關(guān)系,要做個(gè)人空間,其中有一功能是增加對(duì)方為好友.如圖: 用到的方法是ajax,費(fèi)話少說(shuō)貼切代碼: a href=javascript:void(0); onClick =add_username('%= rs(username) %');加為好友/a,用到的js驗(yàn)證: script language = JavaScript src=ajax.
新聞熱點(diǎn)
疑難解答
圖片精選