counter.asp
来自「本程序系统完全实现了医院网站程序的全部功能的前台和后台程序」· ASP 代码 · 共 513 行 · 第 1/2 页
ASP
513 行
If FoundInArr(RegCount_Fill, "FVisit", ",") = True Then
Visit = Request.Cookies("VisitNum")
If Visit <> "" Then
Visit = Visit + 1
Else
Visit = 1
End If
Response.Cookies("VisitNum") = Visit
Response.Cookies("VisitNum").Expires = "January 01, 2010"
Sql = "Select * From PE_StatVisit"
Rs.Open Sql, Conn_Counter, 1, 3
If Rs.EOF Or Rs.BOF Then
Rs.AddNew
End If
If Visit <= 10 Then
If IsNumeric(Rs(Visit - 1)) = 0 Then
Rs(Visit - 1) = 1
Else
Rs(Visit - 1) = Rs(Visit - 1) + 1
If Visit > 1 Then
If Rs(Visit - 2) > 0 Then Rs(Visit - 2) = Rs(Visit - 2) - 1
End If
End If
End If
Rs.Update
Rs.Close
End If
Call UpdateVisit
StrHour = CStr(Hour(Time))
StrDay = CStr(Day(Date))
StrMonth = CStr(Month(Date))
StrYear = CStr(Year(Date))
Strweek = CStr(Weekday(Date))
StrDayLong = CStr(Year(Date) & "-" & Month(Date) & "-" & Day(Date))
StrMonthLong = CStr(Year(Date) & "-" & Month(Date))
StrHourLong=StrDayLong&" "&Cstr(Hour(Time))&":00:00"
Sql = "Select * From PE_StatInfoList"
Rs.Open Sql, Conn_Counter, 1, 3
Rs("TotalNum") = Rs("TotalNum") + 1
Rs("TotalView") = Rs("TotalView") + 1
Rs(Scope) = Rs(Scope) + 1
If IsNull(Rs("StartDate")) Then Rs("StartDate") = StrDayLong
If IsNull(Rs("OldDay")) Then Rs("OldDay") = StrDayLong
OldDay = Rs("OldDay")
Rs.Update
Rs.Close
Call ModiMaxNum
If VisitorKeyword <> "" And FoundInArr(RegCount_Fill, "FKeyword", ",") = True Then
VisitorKeyword = FindKeystr(Request.QueryString("Referer"))
VisitorKeyword = ReplaceBadChar(Trim(LCase(VisitorKeyword)))
AddNum VisitorKeyword, "PE_Statkeyword", "Tkeyword", "TkeywordNum"
End If
If FoundInArr(RegCount_Fill, "FSystem", ",") = True Then
AddNum System, "PE_StatSystem", "TSystem", "TSysNum"
End If
If FoundInArr(RegCount_Fill, "FBrowser", ",") = True Then
AddNum Browser, "PE_StatBrowser", "TBrowser", "TBrwNum"
End If
If FoundInArr(RegCount_Fill, "FMozilla", ",") = True Then
AddNum Mozilla, "PE_StatMozilla", "TMozilla", "TMozNum"
End If
If FoundInArr(RegCount_Fill, "FScreen", ",") = True Then
AddNum Screen, "PE_StatScreen", "TScreen", "TScrNum"
End If
If FoundInArr(RegCount_Fill, "FColor", ",") = True Then
AddNum Color, "PE_StatColor", "TColor", "TColNum"
End If
If FoundInArr(RegCount_Fill, "FTimezone", ",") = True Then
AddNum Timezone, "PE_StatTimezone", "TTimezone", "TTimNum"
End If
If FoundInArr(RegCount_Fill, "FRefer", ",") = True Then
AddNum Referer, "PE_StatRefer", "TRefer", "TRefNum"
End If
If FoundInArr(RegCount_Fill, "FWeburl", ",") = True Then
AddNum WebUrl, "PE_StatWeburl", "TWeburl", "TWebNum"
End If
If FoundInArr(RegCount_Fill, "FAddress", ",") = True Then
AddNum Address, "PE_StatAddress", "TAddress", "TAddNum"
End If
If FoundInArr(RegCount_Fill, "FIP", ",") = True Then
AddNum Ip, "PE_StatIp", "TIp", "TIpNum"
End If
AddNum StrDayLong, "PE_StatDay", "TDay", StrHour
AddNum "Total", "PE_StatDay", "TDay", StrHour
AddNum StrYear, "PE_StatYear", "TYear", StrMonth
AddNum "Total", "PE_StatYear", "TYear", StrMonth
AddNum StrMonthLong, "PE_StatMonth", "TMonth", StrDay
AddNum "Total", "PE_StatMonth", "TMonth", StrDay
AddNum "Total", "PE_StatWeek", "TWeek", Strweek
If DateDiff("Ww", CDate(OldDay), Date) > 0 Then
Sql = "Delete From PE_StatWeek Where TWeek='Current'"
Conn_Counter.Execute (Sql)
End If
AddNum "Current", "PE_StatWeek", "TWeek", Strweek
End Sub
Sub AddNum(Data, TableName, CompareField, AddField)
Dim RowCount
conn_counter.execute "update "&TableName&" set ["&AddField&"]=["&AddField&"]+1 where "&CompareField&"='"&Data&"'", RowCount
If RowCount = 0 Then conn_counter.execute "insert into "&TableName&" ("&CompareField&",["&AddField&"]) values ('"&Data&"',1)"
End Sub
Sub ModiMaxNum()
Sql = "Select * From PE_StatInfoList"
Rs.Open Sql, Conn_Counter, 1, 3
If Rs("OldMonth") = StrMonthLong Then
Rs("MonthNum") = Rs("MonthNum") + 1
Else
Rs("OldMonth") = StrMonthLong
Rs("MonthNum") = 1
End If
If Rs("MonthNum") > Rs("MonthMaxNum") Then
Rs("MonthMaxNum") = Rs("MonthNum")
Rs("MonthMaxDate") = StrMonthLong
End If
If Rs("OldDay") = StrDayLong Then
Rs("DayNum") = Rs("DayNum") + 1
Else
Rs("OldDay") = StrDayLong
Rs("DayNum") = 1
End If
If Rs("DayNum") > Rs("DayMaxNum") Then
Rs("DayMaxNum") = Rs("DayNum")
Rs("DayMaxDate") = StrDayLong
End If
If Rs("OldHour") = StrHourLong Then
Rs("HourNum") = Rs("HourNum") + 1
Else
Rs("OldHour") = StrHourLong
Rs("HourNum") = 1
End If
If Rs("HourNum") > Rs("HourMaxNum") Then
Rs("HourMaxNum") = Rs("HourNum")
Rs("HourMaxTime") = StrHourLong
End If
Rs.Update
Rs.Close
End Sub
Sub UpdateVisit()
Dim rsOut, VisitCount, OutNum
VisitCount = 0
Set rsOut = Conn_Counter.Execute("select count(ID) From PE_StatVisitor")
VisitCount = rsOut(0)
If VisitCount >= VisitRecord Then
Dim rsOd
Set rsOd = Conn_Counter.Execute("select top 1 VTime from PE_StatVisitor order by VTime asc")
If CountDatabaseType = "SQL" Then
conn_counter.Execute("update PE_StatVisitor set VTime='"&Now()&"',IP='"&IP&"',Address='"&Address&"',Browser='"&Browser&"',System='"&System&"',Screen='"&Screen&"',Color='"&Color&"',Timezone="&VisitTimezone&",Referer='"&Referer&"' where VTime='" & rsOd("VTime") & "'")
Else
conn_counter.Execute("update PE_StatVisitor set VTime='"&Now()&"',IP='"&IP&"',Address='"&Address&"',Browser='"&Browser&"',System='"&System&"',Screen='"&Screen&"',Color='"&Color&"',Timezone="&VisitTimezone&",Referer='"&Referer&"' where VTime=#" & rsOd("VTime") & "#")
End If
Set rsOd = Nothing
Else
conn_counter.Execute "insert into PE_StatVisitor (VTime,IP,Address,Browser,System,Screen,Color,Timezone,Referer) Values('"&Now()&"','"&IP&"','"&Address&"','"&Browser&"','"&System&"','"&Screen&"','"&Color&"',"&VisitTimezone&",'"&Referer&"')"
End If
Set rsOut = Nothing
End Sub
Function SaveIP(InIP)
SaveIP = Left(InIP, Len(InIP) - 1)
SaveIP = Right(SaveIP, Len(SaveIP) - 1)
Dim FriendIP
FriendIP = Split(SaveIP, "#")
If UBound(FriendIP) < KillRefresh Then
SaveIP = "#" & SaveIP & "#" & Ip & "#"
Else
SaveIP = Replace("#" & SaveIP, "#" & FriendIP(0) & "#", "#") & "#" & Ip & "#"
End If
End Function
' 从URL中获取关键词
Function FindKeystr(urlstr)
Dim vKey, findKeystr1
FindKeystr = ""
regEx.Pattern = "(?:yahoo.+?[\?|&]p=|openfind.+?q=|google.+?q=|lycos.+?query=|aol.+?query=|onseek.+?keyword=|search\.tom.+?word=|search\.qq\.com.+?word=|zhongsou\.com.+?word=|search\.msn\.com.+?q=|yisou\.com.+?p=|sina.+?word=|sina.+?query=|sina.+?_searchkey=|sohu.+?word=|sohu.+?key_word=|sohu.+?query=|163.+?q=|baidu.+?word=|3721\.com.+?name=|Alltheweb.+?q=|3721\.com.+?p=|baidu.+?wd=)([^&]*)"
Set Matches = regEx.Execute(urlstr)
For Each Match In Matches
findKeystr1 = regEx.Replace(Match.value, "$1")
Next
If findKeystr1 <> "" Then
FindKeystr = LCase(decodeURI(findKeystr1))
If FindKeystr = "undefined" Then
FindKeystr = URLDecode(findKeystr1)
End If
End If
End Function
Function GetYesterdayNum()
If CacheIsEmpty("nYesterDayVisitorNum") Then
Dim YesterdayStrLong
YesterdayStrLong = Year(DateAdd("d", "-1", Date)) & "-" & Month(DateAdd("d", "-1", Date)) & "-" & Day(DateAdd("d", "-1", Date))
Set Rs = server.CreateObject("adodb.recordset")
If CountDatabaseType = "SQL" Then
sql="SELECT * FROM PE_StatDay WHERE TDay='"&YesterdayStrLong&"'"
Else
sql="SELECT * FROM PE_StatDay WHERE TDay=#"&YesterdayStrLong&"#"
End If
Rs.Open Sql, Conn_Counter, 1, 1
If Not Rs.BOF Or Not Rs.EOF Then
For I = 0 To 23
nYesterDayNum = nYesterDayNum + Rs(CStr(I))
Next
Else
nYesterDayNum = 0
End If
CacheData = Application("nYesterDayVisitorNum")
If IsArray(CacheData) Then
CacheData(0) = nYesterDayNum
CacheData(1) = Now()
Else
ReDim CacheData(2)
CacheData(0) = nYesterDayNum
CacheData(1) = Now()
End If
Application.Lock
Application("nYesterDayVisitorNum") = CacheData
Application.UnLock
Else
CacheData = Application("nYesterDayVisitorNum")
If IsArray(CacheData) Then
nYesterDayNum = CacheData(0)
Else
nYesterDayNum = 0
End If
End If
End Function
Function CacheIsEmpty(MyCacheName)
CacheIsEmpty = True
CacheData = Application(MyCacheName)
If Not IsArray(CacheData) Then Exit Function
If Not IsDate(CacheData(1)) Then Exit Function
If DateDiff("s", CDate(CacheData(1)), Now()) < 60 * 1440 Then
CacheIsEmpty = False
End If
End Function
%>
<script language="javascript" runat="server" type="text/javascript">
//解码URI
function decodeURI(furl){
var a=furl;
try{return decodeURIComponent(a)}catch(e){return 'undefined'};
return '';
}
</script>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?