asp事件類 asplib-eventProvider.class.asp 用于獲取ip等_ASP教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦: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.wf0088.com
      '描述:無
      '版權:轉載請注名出處,作者
      '******************************
      '最后修改:2006/11/24
      '修改次數:0
      '修改說明:無
      '目前版本:v1.0.0
      '******************************
      Class eventProvider

      Private logDBName'日志表名
      'www.wf0088.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.

      來源:模板無憂//所屬分類:ASP教程/更新時間:2012-06-10
      相關ASP教程