cls_main.asp
作者:
cls_main.asp
<%
class cls_main
Public ScriptName, SqlQueryNum, savelog, system, ResLicence, ResType, ResLanguage, UserClass, strMsg, RefererPage
Public adminName, adminPass, System_Sn, UserTrueIP
Public Reloadtime, MaxCount, CacheName, Cache_Data, sPath
Private LocalCacheName, CacheData, DelCount, ArrSetting
Public MemberUserName, MemberUserID, MemberUserPassword, MemberUserClass, MemberVipType
'类初始化
Private Sub Class_Initialize()
savelog = 0 '设置为1的时候会记录攻击或错误错信息。
SqlQueryNum = 0
Dim Tmpstr, i
Tmpstr = Request.ServerVariables("PATH_INFO")
Tmpstr = Split(Tmpstr, "/")
i = UBound(Tmpstr)
ScriptName = LCase(Tmpstr(i))
RefererPage = Request.ServerVariables("HTTP_REFERER")
adminName = Session("adminName")
adminPass = Session("adminPass")
Reloadtime = 14400
CacheName = Replace(Replace(Replace(Server.MapPath("index.asp"), "index.asp", ""), ":", ""), "\", "")
System_Sn = LCase(Replace(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"), Split(Request.ServerVariables("SCRIPT_NAME"), "/")(UBound(Split(Request.ServerVariables("SCRIPT_NAME"), "/"))), ""))
UserTrueIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If UserTrueIP = "" Then UserTrueIP = Request.ServerVariables("REMOTE_ADDR")
UserTrueIP = checkStr(UserTrueIP)
If SystemEdition = 3 Then
sPath = "../"
Else
sPath = ""
End If
MemberUserName = checkStr(Request.Cookies(System_Sn)("MemberUserName"))
MemberUserID = checkStr(Request.Cookies(System_Sn)("MemberUserID"))
MemberUserPassword = checkStr(Request.Cookies(System_Sn)("MemberUserPassword"))
MemberUserClass = checkStr(Request.Cookies(System_Sn)("MemberUserClass"))
MemberVipType = checkStr(Request.Cookies(System_Sn)("MemberVipType"))
End Sub
'类结束
Private Sub Class_Terminate()
If IsObject(Conn) Then
'Conn.Close
Set Conn = Nothing
End If
End Sub
Public Property Let Name(ByVal vNewValue)
LocalCacheName = LCase(vNewValue)
End Property
Public Property Let Value(ByVal vNewValue)
If LocalCacheName <> "" Then
ReDim Cache_Data(2)
Cache_Data(0) = vNewValue
Cache_Data(1) = Now()
Application.Lock
Application(CacheName & "_" & LocalCacheName) = Cache_Data
Application.UnLock
Else
Err.Raise vbObjectError + 1, "Mesky.Cn CacheServer", " please change the CacheName."
End If
End Property
Public Property Get Value()
If LocalCacheName <> "" Then
Cache_Data = Application(CacheName & "_" & LocalCacheName)
If IsArray(Cache_Data) Then
Value = Cache_Data(0)
Else
Err.Raise vbObjectError + 1, "Mesky.Cn CacheServer", " The Cache_Data(" & LocalCacheName & ") Is Empty."
End If
Else
Err.Raise vbObjectError + 1, "Mesky.Cn CacheServer", " please change the CacheName."
End If
End Property
Public Function ObjIsEmpty()
ObjIsEmpty = True
Cache_Data = Application(CacheName & "_" & LocalCacheName)
If Not IsArray(Cache_Data) Then Exit Function
If Not IsDate(Cache_Data(1)) Then Exit Function
If DateDiff("s", CDate(Cache_Data(1)), Now()) < (60 * Reloadtime) Then ObjIsEmpty = False
End Function
Public Sub DelCahe(MyCaheName)
Application.Lock
Application.Contents.Remove (CacheName & "_" & MyCaheName)
Application.UnLock
End Sub
'加载系统配置信息
Public Sub LoadSetting()
Dim Rs
'If Not IsObject(Conn) Then ConnectionDatabase
Set Rs = Execute("Select Setting From Mesky_Setting where isDefault=1")
ArrSetting = Split(Rs("Setting"), "{$}")
Set Rs = Nothing
system = Split(ArrSetting(144), ",")
ResLicence = Split(ArrSetting(141), ",")
ResLanguage = Split(ArrSetting(142), ",")
ResType = Split(ArrSetting(143), ",")
UserClass = Split(ArrSetting(140), ",")
Name = "StyleName"
If ObjIsEmpty Then Call ReloadTemplates
End Sub
Public Function Setting(s)
Setting = ArrSetting(s)
End Function
Public Sub ReloadTemplates()
Dim Rs, i
Set Rs = Execute("select top 1 * from Mesky_Style where isDefault =1")
If Not (Rs.EOF And Rs.BOF) Then
For i = 2 To Rs.Fields.Count - 3
Name = Rs(i).Name
'Response.Write(Rs(i).Name)
Value = Rs(i).Value
Next
End If
Set Rs = Nothing
End Sub
Public Function ReadStylePage(Page)
Name = Page
If ObjIsEmpty Then Call ReloadTemplates
Name = Page
ReadStylePage = Value
End Function
'检查管理员权限
'参数:sName(管理员用户名),sItem(权限项目)(sItem=0 只检查超管权限)
'返回:True/False
Public Function checkPermission(sName, sItem)
checkPermission = False
If sName = "" Or IsNull(sName) Then Exit Function
Dim cRs
Set cRs = Execute("select isAdmin,Permission,Password from Mesky_SiteManager Where UserName='" & checkStr(sName) & "'")
If Not (cRs.EOF And cRs.BOF) Then
If adminPass = cRs(2) Then
If cRs(0) Then checkPermission = True
If sItem <> 0 Then
If ItemInList(cRs(1), sItem) Then checkPermission = True
End If
End If
End If
Set cRs = Nothing
End Function
'
'资源分类下载列表
'参数:catalogID(被默认选择的分类ID);tableName(数据库表名)
'返回: 字符串 0=RootID;1=CatalogID;2=Depth;3=CatalogName
Public Function GetCatalogSelect(catalogID, fromName)
Dim tRs, s, i
s = " <option value="""">所有分类</option>" & vbCrLf
Set tRs = Execute("select RootID,CatalogID,Depth,CatalogName from " & fromName & " order by rootid,orders")
Do While Not tRs.EOF
s = s & " <option value=""" & tRs(0) & "," & tRs(1) & "," & tRs(2) & "," & tRs(3) & """ "
If catalogID <> 0 Then
If tRs(1) = catalogID Then s = s & "selected"
End If
s = s & ">"
If tRs(2) = 1 Then s = s & " ├ "
If tRs(2) > 1 Then
For i = 2 To tRs(2)
s = s & " │"
Next
s = s & " ├ "
End If
s = s & tRs(3) & "</option>" & vbCrLf
tRs.MoveNext
Loop
Set tRs = Nothing
GetCatalogSelect = s
s = Null
End Function
'相关下载资源
'参数:Keys,cutNum
'for 标准版 and 高级版
Public Function MutualityDownRes(Keys, topNum, ID)
Dim tRs, s
If topNum = 0 Then
Set tRs = Execute("Select ID,ResName,ResVer From Mesky_Down_Resource where (ResName like '%" & Keys & "%') And ID<>" & ID & " and isAuditing=1 order by ID Desc")
Else
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer From Mesky_Down_Resource where (ResName like '%" & Keys & "%') And ID<>" & ID & " and isAuditing=1 order by ID Desc")
End If
If tRs.EOF And tRs.BOF Then
s = ""
Else
dim arrA,arrB,i
i = 1
Do While Not tRs.EOF
If i = 1 then
arrA = tRs(0)
arrB = tRs(1) & " " & tRs(2)
Else
arrA = arrA & "###" & tRs(0)
arrB = arrB & "$$$" & tRs(1) & " " & tRs(2)
End If
i = i + 1
tRs.MoveNext
Loop
s = arrA & "|||" & arrB
End If
Set tRs = Nothing
MutualityDownRes = s
s = Null
End Function
'相关文章资源
'参数:Keys,cutNum
'for 标准版 and 高级版
Public Function MutualityCmsRes(Keys, topNum, ID)
Dim tRs, s
If topNum = 0 Then
Set tRs = Execute("Select ID,Title From Mesky_Cms_Resource where Title like '%" & Keys & "%' And ID<>" & ID & " and isAuditing=1 order by ID Desc")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title From Mesky_Cms_Resource where Title like '%" & Keys & "%' And ID<>" & ID & " and isAuditing=1 order by ID Desc")
End If
If tRs.EOF And tRs.BOF Then
s = ""
Else
dim arrA,arrB,i
i = 1
Do While Not tRs.EOF
If i = 1 then
arrA = tRs(0)
arrB = tRs(1)
Else
arrA = arrA & "###" & tRs(0)
arrB = arrB & "$$$" & tRs(1)
End If
i = i + 1
tRs.MoveNext
Loop
s = arrA & "|||" & arrB
End If
Set tRs = Nothing
MutualityCmsRes = s
s = Null
End Function
'相关下载资源
'参数:Keys,cutNum
'for 标准版 and 高级版
Public Function showMutualityDownRes(strRes,cutNum)
If IsNull(strRes) or strRes="" then
showMutualityDownRes = ""
Exit Function
End If
Dim i, s, arrA, arrB
arrA = split(strRes,"|||")(0)
arrB = split(strRes,"|||")(1)
arrA = split(arrA,"###")
arrB = split(arrB,"$$$")
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""1"">"
For i = 0 to Ubound(arrA)
s = s & "<tr><td>·<a href=""" & sPath & Replace(Setting(77), "{$id}", arrA(i)) & """>" & cutStr(arrB(i), Int(cutNum)) & "</a></td></tr>"
Next
s = s & "</table>"
showMutualityDownRes = s
s = Null
End Function
'相关文章资源
'参数:Keys,cutNum
'for 标准版 and 高级版
Public Function showMutualityCmsRes(strRes,cutNum)
If IsNull(strRes) or strRes="" then
showMutualityCmsRes = ""
Exit Function
End If
Dim i, s, arrA, arrB
arrA = split(strRes,"|||")(0)
arrB = split(strRes,"|||")(1)
arrA = split(arrA,"###")
arrB = split(arrB,"$$$")
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""1"">"
For i = 0 to Ubound(arrA)
s = s & "<tr><td>·<a href=""" & sPath & Replace(Setting(101), "{$id}", arrA(i)&"_1") & """>" & cutStr(arrB(i), Int(cutNum)) & "</a></td></tr>"
Next
s = s & "</table>"
showMutualityCmsRes = s
s = Null
End Function
Public Function showNews(topNum,cutNum1,cutNum2,isType)
dim tRs,s,i
if Int(isType) = 1 then
Set tRs = Execute("select top "&topNum&" * from Mesky_News where isType = 1 order By ID Desc")
ElseIf Int(isType) = 2 then
Set tRs = Execute("select top "&topNum&" * from Mesky_News where isType = 2 order By ID Desc")
Else
Set tRs = Execute("select top "&topNum&" * from Mesky_News order By ID Desc")
End if
If tRs.Eof and tRs.Bof then
showNews = ""
Else
i = 1
Do While Not tRs.EOF
If i > 1 then s = s & "<br>"
s = s & "·<a href=""ViewNews.asp?ID="&tRs("ID")&"&isType="&isType&""" target=""_blank"">"&cutStr(tRs("Title"),Int(cutNum1))&"</a>"
if Int(cutNum2) > 0 then
s = s & "<br>" & cutStr(tRs("Content"),Int(cutNum2))
End If
s = s &" "& FormatDateTime(tRs("DateAndTime"),2)
i = i + 1
tRs.MoveNext
Loop
End If
showNews = s
s = Null
Set tRs = Nothing
End Function
'资源列表分类导航
'for 标准版 And 高级版
Public Function catalog_nav(rootID, catalogID, depth, fromName)
Dim s, tRs, i, FileName
If rootID = 0 And catalogID = 0 Then
Set tRs = Execute("select catalogID,catalogName,rootID,depth,Child,ResNum from " & fromName & " where depth=0 order by rootID")
Else '根分类 rootID>0
Set tRs = Execute("select catalogID,catalogName,rootID,depth,Child,ResNum from " & fromName & " where rootID=" & rootID & " and depth>0 order by orders")
End If
If tRs.EOF And tRs.BOF Then
s = "Sorry!没有找到相关的分类数据。"
Else
s = "<table width=""80%"" border=""0"" align=""center"">" & vbCrLf
Do While Not tRs.EOF
s = s & "<tr><td>"
If tRs(3) > 1 Then
For i = 2 To tRs(3)
s = s & " "
Next
End If
If rootID = 0 Then
s = s & "<img src=""" & sPath & "images/+.gif"" border=""0"" align=""absmiddle""> "
ElseIf tRs(4) > 0 And rootID > 0 And catalogID > 0 Then
s = s & "<img src=""" & sPath & "images/+.gif"" border=""0"" align=""absmiddle""> "
Else
s = s & "<img src=""" & sPath & "images/-.gif"" border=""0"" align=""absmiddle""> "
End If
If rootID = 0 Then
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(72)
Else
FileName = Setting(97)
End If
s = s & "<a href=""" & sPath & Replace(Replace(FileName, "{$id}", tRs(2)), "{$pages}", "1") & """>" & tRs(1) & "</a> (<font color=red>" & tRs(5) & "</font>)"
Else
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(73)
Else
FileName = Setting(98)
End If
s = s & "<a href=""" & sPath & Replace(Replace(FileName, "{$id}", tRs(0)), "{$pages}", "1") & """>" & tRs(1) & "</a> (<font color=red>" & tRs(5) & "</font>)"
If tRs(0) = catalogID Then s = s & "←"
End If
s = s & "</td></tr>"
tRs.MoveNext
Loop
s = s & "</table>"
End If
Set tRs = Nothing
catalog_nav = s
s = Null
End Function
'当前位置 导航
'for 标准版
Public Function site_nav(catalogID, fromName, GetTitle, GetURL)
Dim s, tRs, catalogName, ParentID, ParentStr, depth, rootID, FileName
If LCase(fromName) = "mesky_down_catalog" Then
s = s & "<a href=""" & sPath & Setting(70) & """>下载首页</a> "
Else
s = s & "<a href=""" & sPath & Setting(95) & """>首页</a> "
End If
If catalogID > 0 Then
Set tRs = Execute("select catalogName,ParentID,ParentStr,depth,rootID from " & fromName & " where catalogID=" & catalogID)
If Not (tRs.EOF And tRs.BOF) Then
catalogName = tRs(0)
ParentID = tRs(1)
ParentStr = tRs(2)
depth = tRs(3)
rootID = tRs(4)
End If
Set tRs = Nothing
If ParentID <> 0 Then
Set tRs = Execute("select catalogID,catalogName,depth,rootID from " & fromName & " where catalogID in(" & ParentStr & ")")
If Not (tRs.EOF And tRs.BOF) Then
Do While Not tRs.EOF
If tRs(2) > 0 Then
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(73)
Else
FileName = Setting(98)
End If
s = s & " → <a href=""" & sPath & Replace(Replace(FileName, "{$id}", tRs(0)), "{$pages}", "1") & """>" & tRs(1) & "</a>"
Else
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(72)
Else
FileName = Setting(97)
End If
s = s & " → <a href=""" & sPath & Replace(Replace(FileName, "{$id}", tRs(3)), "{$pages}", "1") & """>" & tRs(1) & "</a>"
End If
tRs.MoveNext
Loop
End If
Set tRs = Nothing
End If
If depth > 0 Then
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(73)
Else
FileName = Setting(98)
End If
s = s & " → <a href=""" & sPath & Replace(Replace(FileName, "{$id}", catalogID), "{$pages}", "1") & """>" & catalogName & "</a>"
Else
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(72)
Else
FileName = Setting(97)
End If
s = s & " → <a href=""" & sPath & Replace(Replace(FileName, "{$id}", rootID), "{$pages}", "1") & """>" & catalogName & "</a>"
End If
End If
If GetURL <> "" Then
s = s & " → <a href=""" & GetURL & """>" & GetTitle & "</a>"
Else
s = s & " → " & GetTitle
End If
site_nav = s
s = Null
End Function
'资源分类页
'for 标准版 and 高级版
Public Function showDownResCatalog()
Dim s, Rs, sRs, i, x, y, brNum
brNum = 6
s = s & "<table width=""770"" border=""0"" align=""center"" cellpadding=""2"" cellspacing=""1"">" & vbCrLf
Set Rs = Execute("select catalogID,catalogName,rootID,depth from Mesky_Down_catalog where Depth=0 order by rootID")
i = 1
If Not (Rs.EOF And Rs.BOF) Then
Do While Not Rs.EOF
s = s & " <tr class=""tdbg" & i Mod 2 + 1 & """>" & vbCrLf
s = s & " <td width=""100"" align=""center""><a href=""" & sPath & Replace(Replace(Setting(72), "{$id}", Rs(2)), "{$pages}", "1") & """>" & Rs(1) & "</a> <a href=""xml/rss_Down_r" & Rs(2) & ".xml""><img src=""" & sPath & "images/rss.gif"" border=""0"" align=""absmiddle""></a></td>" & vbCrLf
s = s & " <td><table width=""100%"" border=""0"" cellspacing=""1"" cellpadding=""3"">" & vbCrLf
s = s & " <tr>" & vbCrLf
Set sRs = Execute("select catalogID,catalogName,rootID,depth from Mesky_Down_catalog where ParentID=" & Rs(0) & " order by orders")
If Not (sRs.EOF And sRs.BOF) Then
x = 1
Do While Not sRs.EOF
s = s & " <td align=""center"" width=""12.5%""><a href=""" & sPath & Replace(Replace(Setting(73), "{$id}", sRs(0)), "{$pages}", "1") & """>" & sRs(1) & "</a> <a href=""xml/rss_Down_s" & sRs(0) & ".xml"" class=""f11"">(RSS)</a></td>" & vbCrLf
If (x Mod brNum) = 0 Then s = s & "</tr><tr>" & vbCrLf
x = x + 1
sRs.MoveNext
Loop
If (x Mod brNum) > 0 Then
For y = 0 To (brNum - (x Mod brNum))
s = s & "<td align=""center"" width=""12.5%"">.</td>" & vbCrLf
Next
End If
If x = brNum Then
For y = 0 To (brNum - x)
s = s & "<td align=""center"" width=""12.5%"">.</td>" & vbCrLf
Next
End If
End If
Set sRs = Nothing
s = s & " </tr>" & vbCrLf
s = s & " </table></td>" & vbCrLf
s = s & " </tr>" & vbCrLf
i = i + 1
Rs.MoveNext
Loop
End If
Set Rs = Nothing
s = s & "</table>"
showDownResCatalog = s
s = Null
End Function
'资源分类页
'for 标准版 高级版
Public Function showCmsResCatalog()
Dim s, Rs, sRs, i, x, y, brNum
brNum = 5
s = s & "<table width=""770"" border=""0"" align=""center"" cellpadding=""2"" cellspacing=""1"">" & vbCrLf
Set Rs = Execute("select catalogID,catalogName,rootID,depth from Mesky_Cms_catalog where Depth=0 order by rootID")
i = 1
If Not (Rs.EOF And Rs.BOF) Then
Do While Not Rs.EOF
s = s & " <tr class=""tdbg" & i Mod 2 + 1 & """>" & vbCrLf
s = s & " <td width=""100"" align=""center""><a href=""" & sPath & Replace(Replace(Setting(97), "{$id}", Rs(2)),"{$pages}","1") & """>" & Rs(1) & "</a> <a href=""xml/rss_Cms_r" & Rs(2) & ".xml""><img src=""" & sPath & "images/rss.gif"" border=""0"" align=""absmiddle""></a></td>" & vbCrLf
s = s & " <td><table width=""100%"" border=""0"" cellspacing=""1"" cellpadding=""3"">" & vbCrLf
s = s & " <tr>" & vbCrLf
Set sRs = Execute("select catalogID,catalogName,rootID,depth from Mesky_Cms_catalog where ParentID=" & Rs(0) & " order by orders")
If Not (sRs.EOF And sRs.BOF) Then
x = 1
Do While Not sRs.EOF
s = s & " <td align=""center"" width=""12.5%""><a href=""" & sPath & Replace(Replace(Setting(98), "{$id}", sRs(0)),"{$pages}","1") & """>" & sRs(1) & "</a> <a href=""xml/rss_Cms_s" & sRs(0) & ".xml"" class=""f11"">(RSS)</a></td>" & vbCrLf
If (x Mod brNum) = 0 Then s = s & "</tr><tr>"
x = x + 1
sRs.MoveNext
Loop
If (x Mod brNum) > 0 Then
For y = 0 To (brNum - (x Mod brNum))
s = s & "<td align=""center"" width=""12.5%"">.</td>" & vbCrLf
Next
End If
If x = brNum Then
For y = 0 To (brNum - x)
s = s & "<td align=""center"" width=""12.5%"">.</td>" & vbCrLf
Next
End If
End If
Set sRs = Nothing
s = s & " </tr>" & vbCrLf
s = s & " </table></td>" & vbCrLf
s = s & " </tr>" & vbCrLf
i = i + 1
Rs.MoveNext
Loop
End If
Set Rs = Nothing
s = s & "</table>"
showCmsResCatalog = s
s = Null
End Function
'for 标准版 and 高级版 首页
Public Function showDownResAdv(strWhere, strOrder, topNum, cutNum, showDate, showDot, showHrline, showCatalogName)
Dim tRs, s, i, strDot, strHits
If InStr(LCase(strOrder), "hits") > 0 Then
strHits = Replace(Replace(Replace(LCase(strOrder), "desc", ""), "asc", ""), " ", "")
Else
strHits = "HitsTotal"
End If
If (showDot = "" Or showDot = "0") Then
strDot = "·"
Else
strDot = showDot
End If
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer,catalogID,catalogName," & strHits & ",UpdateTime From Mesky_Down_Resource where " & strWhere & " and isAuditing=1 order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer,catalogID,catalogName," & strHits & ",UpdateTime From Mesky_Down_Resource where isAuditing=1 order by " & strOrder & "")
End If
s = "<table width=""99%"" border=""0"" cellspacing=""0"" cellpadding=""2"" align=""center"">" & vbCrLf
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
Do While Not tRs.EOF
s = s & " <tr>" & vbCrLf
s = s & " <td>" & strDot
If showCatalogName Then '显示分类
s = s & "[<a href=""" & Replace(Replace(Setting(73), "{$id}", tRs(3)), "{$pages}", "1") & """ target=""_blank"">" & tRs(4) & "</a>]"
End If
s = s & " <a href=""" & Replace(Setting(77), "{$id}", tRs(0)) & """ target=""_blank"" Title=""" & tRs(1) & " " & tRs(2) & """>" & cutStr(tRs(1) & " " & tRs(2), Int(cutNum)) & "</a> </td>"
If showDate = "Hits" Then '显示时间还是人气
s = s & "<td width=""30"">" & tRs(5) & "</td>" & vbCrLf
Else
s = s & "<td width=""30"">" & FormatMyDate(tRs(6), showDate) & "</td>" & vbCrLf
End If
s = s & " </tr>" & vbCrLf
If showHrline Then s = s & "<tr><td height=""1"" colspan=""2"" background=""images/bg_dot.gif""></td></tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
s = s & "</table>" & vbCrLf
showDownResAdv = s
s = Null
End Function
'for 标准版 and 高级版
Public Function showDownRes(strWhere, strOrder, topNum, cutNum, showDot, showHrline)
Dim tRs, s, i, strDot
i = 1
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer From Mesky_Down_Resource where " & strWhere & " and isAuditing=1 order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer From Mesky_Down_Resource where isAuditing=1 order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = ""
Else
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""1"">" & vbCrLf
Do While Not tRs.EOF
If (showDot = "" Or showDot = "0") Then
strDot = "" & Right("0" & i, 2) & "."
Else
strDot = showDot
End If
s = s & " <tr><td><font color=red>" & strDot & "</font><a href=""" & sPath & Replace(Setting(77), "{$id}", tRs(0)) & """>" & cutStr(tRs(1) & " " & tRs(2), Int(cutNum)) & "</a></td></tr>" & vbCrLf
If showHrline Then s = s & "<tr><td height=""1"" background=""" & sPath & "images/bg_dot.gif""></td></tr>" & vbCrLf
i = i + 1
tRs.MoveNext
Loop
s = s & "</table>"
End If
Set tRs = Nothing
showDownRes = s
s = Null
End Function
'for 标准版 and 高级版 首页
Public Function showCmsResAdv(strWhere, strOrder, topNum, cutNum, showDate, showDot, showHrline, showCatalogName)
Dim tRs, s, i, strDot
If (showDot = "" Or showDot = "0") Then
strDot = "·"
Else
strDot = showDot
End If
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,Title,catalogID,catalogName,Hits,DateAndTime,isComment,RedirectUrl From Mesky_Cms_Resource where " & strWhere & " and isAuditing=1 order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title,catalogID,catalogName,Hits,DateAndTime,isComment,RedirectUrl From Mesky_Cms_Resource where isAuditing=1 order by " & strOrder & "")
End If
s = "<table width=""99%"" border=""0"" cellspacing=""0"" cellpadding=""2"" align=""center"">" & vbCrLf
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
Do While Not tRs.EOF
s = s & " <tr>" & vbCrLf
s = s & " <td>" & strDot
If showCatalogName Then '显示分类
s = s & "[<a href=""" & Replace(Replace(Setting(98), "{$id}", tRs(2)),"{$pages}","1") & """ target=""_blank"">" & tRs(3) & "</a>]"
End If
If tRs(7) <> "" then
s = s & " <a href=""" & tRs(7) & """ target=""_blank"" Title=""" & tRs(1) & """>"
Else
s = s & " <a href=""" & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """ target=""_blank"" Title=""" & tRs(1) & """>"
End IF
'显示评论
If tRs(6) = 1 then
s = s & cutStr(tRs(1), Int(cutNum)-4) & "</a> <a href=""../comment_cms.asp?ID="&tRs(0)&""">评论</a></td>"
Else
s = s & cutStr(tRs(1), Int(cutNum)) & "</a></td>"
End IF
If showDate = "Hits" Then '显示时间还是人气
s = s & "<td width=""30"">" & tRs(4) & "</td>" & vbCrLf
Else
s = s & "<td width=""30"">" & FormatMyDate(tRs(5), showDate) & "</td>" & vbCrLf
End If
s = s & " </tr>" & vbCrLf
If showHrline Then s = s & "<tr><td height=""1"" colspan=""2"" background=""images/bg_dot.gif""></td></tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
s = s & "</table>" & vbCrLf
showCmsResAdv = s
s = Null
End Function
'for 标准版 and 高级版
Public Function showCmsRes(strWhere, strOrder, topNum, cutNum, showDot, showHrline)
Dim tRs, s, i, strDot
i = 1
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,Title,isComment,RedirectUrl From Mesky_Cms_Resource where " & strWhere & " and isAuditing=1 order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title,isComment,RedirectUrl From Mesky_Cms_Resource where isAuditing=1 order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = ""
Else
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""1"">" & vbCrLf
Do While Not tRs.EOF
If (showDot = "" Or showDot = "0") Then
strDot = "" & Right("0" & i, 2) & "."
Else
strDot = showDot
End If
If tRs(3)<>"" then
s = s & " <tr><td><font color=red> " & strDot & "</font><a href=""" & tRs(3) & """>"
Else
s = s & " <tr><td><font color=red> " & strDot & "</font><a href=""" & sPath & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """>"
End IF
'显示评论
If tRs(2) = 1 then
s = s & cutStr(tRs(1), Int(cutNum)-4) & "</a> <a href=""../comment_cms.asp?ID="&tRs(0)&""">评论</a></td></tr>" & vbCrLf
Else
s = s & cutStr(tRs(1), Int(cutNum)) & "</a></td></tr>" & vbCrLf
End IF
If showHrline Then s = s & "<tr><td height=""1"" background=""" & sPath & "images/bg_dot.gif""></td></tr>" & vbCrLf
i = i + 1
tRs.MoveNext
Loop
s = s & "</table>"
End If
Set tRs = Nothing
showCmsRes = s
s = Null
End Function
Public Function showDownResImages(strWhere, strOrder, topNum, cutNum, intWidth, intHeight, isWH)
Dim tRs, s, i
i = 1
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""3"">" & vbCrLf
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer,SmallImg From Mesky_Down_Resource where " & strWhere & " and isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer,SmallImg From Mesky_Down_Resource where isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
If isWH = 1 Then s = s & " </tr>" & vbCrLf
Do While Not tRs.EOF
If isWH = 2 Then s = s & " <tr>" & vbCrLf
s = s & " <td align=""center""><a href=""" & sPath & Replace(Setting(77), "{$id}", tRs(0)) & """ target=""_blank"" Title=""" & tRs(1) & " " & tRs(2) & """><img src=""" & sPath & tRs(3) & """ border=0 width=""" & intWidth & """ height=""" & intHeight & """></a>"
s = s & "<br><a href=""" & sPath & Replace(Setting(77), "{$id}", tRs(0)) & """ target=""_blank"">" & cutStr(tRs(1) & " " & tRs(2), Int(cutNum)) & "</a></td>" & vbCrLf
If isWH = 2 Then s = s & " </tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
If isWH = 1 Then s = s & " </tr>" & vbCrLf
s = s & "</table>" & vbCrLf
showDownResImages = s
s = Null
End Function
Public Function showCmsResImages(strWhere, strOrder, topNum, cutNum, intWidth, intHeight, isWH)
Dim tRs, s, i
i = 1
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""3"">" & vbCrLf
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,Title,SmallImg,RedirectUrl From Mesky_Cms_Resource where " & strWhere & " and isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title,SmallImg,RedirectUrl From Mesky_Cms_Resource where isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
If isWH = 1 Then s = s & " </tr>" & vbCrLf
Do While Not tRs.EOF
If isWH = 2 Then s = s & " <tr>" & vbCrLf
If tRs(3) <> "" then
s = s & " <td align=""center""><a href=""" & tRs(3) & """ target=""_blank"" Title=""" & tRs(1) & """><img src=""" & sPath & tRs(2) & """ border=0 width=""" & intWidth & """ height=""" & intHeight & """></a>"
s = s & "<br><a href=""" & tRs(3) & """>" & cutStr(tRs(1), Int(cutNum)) & "</a></td>" & vbCrLf
Else
s = s & " <td align=""center""><a href=""" & sPath & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """ target=""_blank"" Title=""" & tRs(1) & """><img src=""" & sPath & tRs(2) & """ border=0 width=""" & intWidth & """ height=""" & intHeight & """></a>"
s = s & "<br><a href=""" & sPath & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """>" & cutStr(tRs(1), Int(cutNum)) & "</a></td>" & vbCrLf
End IF
If isWH = 2 Then s = s & " </tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
If isWH = 1 Then s = s & " </tr>" & vbCrLf
s = s & "</table>" & vbCrLf
showCmsResImages = s
s = Null
End Function
Public Function showCmsResExcerptImages(strWhere, strOrder, topNum, cutNum1, cutNum2, intWidth, intHeight, isWH)
Dim tRs, s, i
i = 1
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""3"">" & vbCrLf
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,Title,SmallImg,Excerpt,RedirectUrl From Mesky_Cms_Resource where " & strWhere & " and isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title,SmallImg,Excerpt,RedirectUrl From Mesky_Cms_Resource where isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
If isWH = 1 Then s = s & " </tr>" & vbCrLf
Do While Not tRs.EOF
If isWH = 2 Then s = s & " <tr>" & vbCrLf
s = s & " <td><img src=""" & sPath & tRs(2) & """ border=0 width=""" & intWidth & """ height=""" & intHeight & """ align=""left"">"
If tRs(4) <> "" then
s = s & "<a href=""" & tRs(4) & """>" & cutStr(tRs(1), Int(cutNum1)) & "</a>"
Else
s = s & "<a href=""" & sPath & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """>" & cutStr(tRs(1), Int(cutNum1)) & "</a>"
End If
If Int(cutNum2) > 0 then s = s & "<br>"&cutStr(tRs(3),Int(cutNum2))
s = s & "</td>" & vbCrLf
If isWH = 2 Then s = s & " </tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
If isWH = 1 Then s = s & " </tr>" & vbCrLf
s = s & "</table>" & vbCrLf
showCmsResExcerptImages = s
s = Null
End Function
'//截取指定长度字符串
'//返回类型:字符串
Public Function cutStr(str, strlen)
If str="" or isnull(str) then Exit Function
Dim l, t, c, i
l = Len(str)
t = 0
For i = 1 To l
c = Abs(Asc(Mid(str, i, 1)))
If c > 255 Then
t = t + 2
Else
t = t + 1
End If
If t >= strlen Then
cutStr = Left(str, i) & ".."
Exit For
Else
cutStr = str
End If
Next
cutStr = Replace(cutStr, Chr(10), "")
End Function
Public Sub SystemMsg()
Response.Write "<TABLE width=""75%"" align=""center"">" & vbCrLf
Response.Write " <TR>" & vbCrLf
Response.Write " <TD>" & vbCrLf
Response.Write "<DIV class=ContainerSection>" & vbCrLf
Response.Write " <DIV class=ContainerTopBorder>" & vbCrLf
Response.Write " <DIV class=ContainerTop></DIV>" & vbCrLf
Response.Write " </DIV>" & vbCrLf
Response.Write " <DIV class=ContainerContent> System Message:</DIV> " & vbCrLf
Response.Write " <DIV><br> <B>" & strMsg & "</B><BR><BR>" & vbCrLf
Response.Write " <DIV class=ContainerContent align=""center""><a href=""" & RefererPage & """><<返回上一页</a>" & vbCrLf
Response.Write " </DIV> " & vbCrLf
Response.Write " </DIV>" & vbCrLf
Response.Write " <DIV class=BottomWrapper>" & vbCrLf
Response.Write " <DIV class=ContainerBottomBorder>" & vbCrLf
Response.Write " <DIV class=ContainerBottom></DIV>" & vbCrLf
Response.Write " </DIV>" & vbCrLf
Response.Write " </DIV>" & vbCrLf
Response.Write "</DIV>" & vbCrLf
Response.Write " </TD>" & vbCrLf
Response.Write " </TR>" & vbCrLf
Response.Write "</TABLE>" & vbCrLf
End Sub
Public Function CopyRight()
Dim reval
reval = reval & "Powered By <a href=""http://www.mesky.net"" title=""Powered By Www.Mesky.Net"">动感下载系统(MeskyDMS)V3.0</a>"
CopyRight = reval
reval = Null
End Function
Public Function HtmlHead()
Dim reval
reval = reval & "<!--Published Date:" & Now() & " Powered by Www.Mesky.Net-->" & vbCrLf
reval = reval & "<!--" & vbCrLf
reval = reval & "┌───────────────────── MESKY─┐" & vbCrLf
reval = reval & "│动感下载系统V3.0 —— http://www.mesky.net │" & vbCrLf
reval = reval & "│ 程序购买 QQ:26934364 手机:13586085531 │" & vbCrLf
reval = reval & "└───────────────────────.NET┘" & vbCrLf
reval = reval & "-->" & vbCrLf
HtmlHead = reval
reval = Null
End Function
Public Function DMSVer()
If IsSqlDataBase = 1 Then
DMSVer = "动感下载系统(MeskyDMS) V3.0 Build 050623 SQL版"
Else
DMSVer = "动感下载系统(MeskyDMS) V3.0 Build 050623 Access版"
End If
End Function
Public Function F469e80d32(tr)
If Request.ServerVariables("SERVER_NAME")="127.0.0.1" then
F469e80d32 = "1"
Exit Function
End If
F469e80d32 = "0"
Dim tRs,tempStr, RegCode
tempStr = Request.ServerVariables("SERVER_NAME") & "C0559f8d32"
RegCode = MD5(tempStr, 16)
Set tRs = Execute("select * from Mesky_Key where RegType = " & tr)
If Not (tRs.EOF And tRs.BOF) Then
If tRs("RegCode") <> RegCode Then
F469e80d32 = "2"
ElseIf tRs("RegKey") <> MD5(RegCode & tr & "F469e80d32", 32) Then
F469e80d32 = "0"
ElseIf tRs("RegCode") = RegCode And tRs("RegKey") = MD5(RegCode & tr & "F469e80d32", 32) Then
F469e80d32 = "1"
End If
End If
Set tRs = Nothing
End Function
Public Function C0559f8d32(tr)
C0559f8d32 = 0
End Function
Public Function F469e88d32(tr)
F469e88d32 = 0
End Function
Public Function Execute(Command)
If Not IsObject(Conn) Then ConnectionDatabase
'检查权限,防止注入攻击。
'If InStr(LCase(Command),"Mesky_SiteManager")>0 And Left(ScriptName,6)<> "Mesky_SiteManager" Then
'If savelog=1 Then
'Response.Write SaveSQLLOG(Command,"")
'End If
'Command=Replace(LCase(Command),"Mesky_SiteManager","Mesky<i>"&Chr(95)&"</i>SiteManager")
'End If
If IsDeBug = 0 Then
On Error Resume Next
Set Execute = Conn.Execute(Command)
If Err Then
Err.Clear
Set Conn = Nothing
If savelog = 1 Then
Response.Write SaveSQLLOG(Command, "查询数据的时候发现错误,请检查您的查询代码是否正确。<br>基于安全的理由,只显示本信息,要查看详细的错误信息,请修改您的程序文件conn.asp。把""Const IsDeBug = 0""改为:""Const IsDeBug = 1""")
Else
Response.Write "查询数据的时候发现错误,请检查您的查询代码是否正确。"
End If
Response.End
End If
Else
'Response.Write Command & "<br>"
Set Execute = Conn.Execute(Command)
End If
SqlQueryNum = SqlQueryNum + 1
End Function
'---------------------------------------------------------------------
'时间格式化
'参数:时间,格式模板
'返回:格式化后的字符串
'备注:格式化关键词详解:
' "{Y}" : 4位年
' "{y}" : 2位年
' "{M}" : 不补位的月
' "{m}" : 补位的月,如03,01
' "{D}" : 不补位的日
' "{d}" : 补位的日
' "{H}" : 不补位的小时
' "{h}" : 补位的小时
' "{MI}": 不补位的分钟
' "{mi}": 补位的分钟
' "{S}" : 不补位的秒
' "{s}" : 补位的秒
'---------------------------------------------------------------------
Public Function FormatMyDate(myDate, Template)
If Not IsDate(myDate) Or Template = "" Then
FormatMyDate = ""
Exit Function
End If
Dim mYear, mMonth, mDay, mHour, mMin, mSec
mYear = Year(myDate)
mMonth = Month(myDate)
mDay = Day(myDate)
mHour = Hour(myDate)
mMin = Minute(myDate)
mSec = Second(myDate)
FormatMyDate = Template
FormatMyDate = Replace(FormatMyDate, "{Y}", Year(myDate))
FormatMyDate = Replace(FormatMyDate, "{y}", Right(Year(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{M}", Month(myDate))
FormatMyDate = Replace(FormatMyDate, "{m}", Right("00" & Month(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{D}", Day(myDate))
FormatMyDate = Replace(FormatMyDate, "{d}", Right("00" & Day(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{H}", Hour(myDate))
FormatMyDate = Replace(FormatMyDate, "{h}", Right("00" & Hour(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{MI}", Minute(myDate))
FormatMyDate = Replace(FormatMyDate, "{mi}", Right("00" & Minute(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{S}", Second(myDate))
FormatMyDate = Replace(FormatMyDate, "{s}", Right("00" & Second(myDate), 2))
If FormatDateTime(myDate, 1) = FormatDateTime(Date, 1) Then
FormatMyDate = "<font color=red>" & FormatMyDate & "</font>"
End If
'Template = Null
End Function
Rem 判断发言是否来自外部
Public Function ChkPost()
Dim server_v1, server_v2
ChkPost = 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
ChkPost = False
Else
ChkPost = True
End If
End Function
'过滤SQL非法字符
Public Function checkStr(str)
If IsNull(str) Then
checkStr = ""
Exit Function
End If
str = Replace(str, Chr(0), "")
checkStr = Replace(str, "'", "''")
End Function
'显示验证码
Public Function GetCode()
Dim test
On Error Resume Next
'Set test = Server.CreateObject("Adodb.Stream")
'Set test = Nothing
If Err Then
Dim zNum
Randomize Timer
zNum = CInt(8999 * Rnd + 1000)
Session("GetCode") = zNum
GetCode = "<input type=""text"" name=""codestr"" maxlength=""4"" size=""4""> " & Session("GetCode")
Else
GetCode = "<input type=""text"" name=""codestr"" maxlength=""4"" size=""4""> <img src=""getcode.asp"">"
End If
End Function
'检查验证码是否正确
Public Function CodeIsTrue()
Dim CodeStr
CodeStr = Trim(Request("CodeStr"))
If CStr(Session("GetCode")) = CStr(CodeStr) And CodeStr <> "" Then
CodeIsTrue = True
Session("GetCode") = Empty
Else
CodeIsTrue = False
Session("GetCode") = Empty
End If
End Function
'系统分配随机密码
Public Function Createpass()
Dim Ran, i, LengthNum
LengthNum = 16
Createpass = ""
For i = 1 To LengthNum
Randomize
Ran = CInt(Rnd * 2)
Randomize
If Ran = 0 Then
Ran = CInt(Rnd * 25) + 97
Createpass = Createpass & UCase(Chr(Ran))
ElseIf Ran = 1 Then
Ran = CInt(Rnd * 9)
Createpass = Createpass & Ran
ElseIf Ran = 2 Then
Ran = CInt(Rnd * 25) + 97
Createpass = Createpass & Chr(Ran)
End If
Next
End Function
'//从Html标签中取出文本内容
Public Function GetTextFromHtml(strHtml)
strHtml = Replace(Replace(Replace(Replace(strHtml, "<br>", vbCrLf), "<BR>", vbCrLf), "</p>", vbCrLf & vbCrLf), "</P>", vbCrLf & vbCrLf)
Dim strPatrn
strPatrn = "<.*?>"
Dim regEx
Set regEx = New RegExp
regEx.Pattern = strPatrn
regEx.IgnoreCase = True
regEx.Global = True
GetTextFromHtml = regEx.Replace(strHtml, "")
Set regEx = Nothing
End Function
'//检测Email
'//返回:True/False
Public Function CheckEmail(strng)
CheckEmail = False
Dim regEx, Match
Set regEx = New RegExp
regEx.Pattern = "^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"
regEx.IgnoreCase = True
Set Match = regEx.Execute(strng)
If Match.Count Then CheckEmail = True
Set Match = Nothing
Set regEx = Nothing
End Function
'//字符串是否在[0-9]&[a-z]及下划线中(不区分大小写)
'//返回:True/False
Public Function IsChar26AndInt(str)
IsChar26AndInt = True
Dim regEx, Match
Set regEx = New RegExp
regEx.Pattern = "[\W]{1,}?"
regEx.IgnoreCase = True
Set Match = regEx.Execute(str)
If Match.Count >= 1 Then
IsChar26AndInt = False
End If
Set Match = Nothing
Set regEx = Nothing
End Function
'//字符串是否在[a-z]中(不区分大小写)
'//返回:True/False
Public Function IsChar26(str)
IsChar26 = True
Dim regEx, Match
Set regEx = New RegExp
regEx.Pattern = "[^a-zA-Z]{1,}?"
regEx.IgnoreCase = True
Set Match = regEx.Execute(str)
If Match.Count >= 1 Then
IsChar26 = False
End If
Set Match = Nothing
Set regEx = Nothing
End Function
'//字符串是否在[0-9]中(不区分大小写)
Public Function IsIntChar(str)
IsIntChar = True
Dim regEx, Match
Set regEx = New RegExp
regEx.Pattern = "\D{1,}?"
regEx.IgnoreCase = True
Set Match = regEx.Execute(str)
If Match.Count >= 1 Then
IsIntChar = False
End If
Set Match = Nothing
Set regEx = Nothing
End Function
'//Html字符串转Js字符串
Public Function HTMLToJS(strHtml)
If Trim(strHtml) = "" Then
HTMLToJS = ""
Exit Function
End If
strHtml = Replace(strHtml, "\", "\\")
strHtml = Replace(strHtml, """", "\""")
strHtml = Replace(strHtml, vbCrLf, "")
HTMLToJS = strHtml
End Function
'//转换Html关键标签为Html特殊字符串
Public Function HTMLEncode(str)
If Not IsNull(str) Then
str = Replace(str, Chr(13), "")
str = Replace(str, Chr(10) & Chr(10), "<P></P>")
str = Replace(str, Chr(10), "<BR>")
str = Replace(str, ">", ">")
str = Replace(str, "<", "<")
str = Replace(str, "&", "&")
str = Replace(str, " ", " ")
str = Replace(str, """", """)
HTMLEncode = str
str = Null
End If
End Function
Public Function HTMLEncode1(str)
If Not IsNull(str) Then
str = Replace(str, Chr(32) & Chr(32) & Chr(32), " ")
str = Replace(str, Chr(13), "")
str = Replace(str, Chr(10) & Chr(10), "<br>")
str = Replace(str, Chr(10), "<br>")
HTMLEncode1 = str
str = Null
End If
End Function
Function HTMLToData(str)
If IsNull(str) Then
HTMLToData = ""
Exit Function
End If
str = Replace(str, "&", "&")
str = Replace(str, Chr(13), "
") '回车符
str = Replace(str, Chr(10), "
") '换行符
str = Replace(str, Chr(9), "	") '制表符
str = Replace(str, "'", "'") '单引号
str = Replace(str, """", """) '双引号
str = Replace(str, "<", "<")
str = Replace(str, ">", ">")
HTMLToData = str
str = Null
End Function
'//转换Html关键标签为Html特殊字符串(不转换硬回车及软回车符)
Public Function HTMLEncode2(str)
If Not IsNull(str) Then
str = Replace(str, ">", ">")
str = Replace(str, "<", "<")
'str = replace(str, "&", "&")
'str = replace(str, " ", " ")
'str = replace(str, """", """)
HTMLEncode2 = str
str = Null
End If
End Function
'//函数:字符串替换
'//参数:正则表达式,被替换字符串,替换字符串
Public Function ReplaceTest(patrn, mStr, replStr)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
ReplaceTest = regEx.Replace(mStr, replStr)
Set regEx = Nothing
End Function
'//函数:字符串查找
'//参数:正则表达式,被替换字符串,替换字符串
'//返回:Bool(True:找到)
Public Function FindText(patrn, mStr)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
FindText = regEx.test(mStr)
Set regEx = Nothing
End Function
'//检测是否含有禁止字符串
'//参数:被检测字符串,禁止字符列表(以,号隔开)
'//返回:True(含有违禁字符)/False
'//例:myCharClass.BadWord("你他妈的王八蛋,Fuck You","fuck you,王八蛋,you are pig")
Public Function BadWord(str, BadWordList)
BadWord = False
Dim arrBadWord
arrBadWord = Split(BadWordList, ",", -1, 1)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True '不区分大小写
regEx.Global = True
Dim Match
Dim i
For i = 0 To UBound(arrBadWord)
Response.Write arrBadWord(i) & "<br>"
If arrBadWord(i) <> "" Then
regEx.Pattern = arrBadWord(i)
Set Match = regEx.Execute(str)
If Match.Count Then
BadWord = True
Exit For
End If
End If
Next
End Function
'关键字着色
Public Function KeywordColor(str, Keyword)
KeywordColor = ReplaceTest(Keyword, str, "<font color=red>" & Keyword & "</font>")
End Function
'获取字符中首字字符
'返回:A-Z ;123 ; ###
Public Function GetSpellChar(str)
Dim tmp
GetSpellChar = "@"
tmp = 65536 + Asc(str)
If (tmp >= 45217 And tmp <= 45252) Or (tmp = 65601) Or (tmp = 65633) Or (tmp = 37083) Then
GetSpellChar = "A1"
ElseIf (tmp >= 45253 And tmp <= 45760) Or (tmp = 65602) Or (tmp = 65634) Or (tmp = 39658) Then
GetSpellChar = "B1"
ElseIf (tmp >= 45761 And tmp <= 46317) Or (tmp = 65603) Or (tmp = 65635) Or (tmp = 33405) Then
GetSpellChar = "C1"
ElseIf (tmp >= 46318 And tmp <= 46930) Or (tmp = 61884) Or (tmp = 63468) Or (tmp = 65604) Or (tmp >= 36820 And tmp <= 38524) Or (tmp = 65636) Then
GetSpellChar = "D1"
ElseIf (tmp >= 46931 And tmp <= 47009) Or (tmp >= 46827 And tmp <= 46842) Or (tmp = 65605) Or (tmp = 65637) Or (tmp = 61513) Then '46827 46833 46842
GetSpellChar = "E1"
ElseIf (tmp >= 47010 And tmp <= 47296) Or (tmp = 65606) Or (tmp = 65638) Or (tmp = 61320) Or (tmp = 63568) Or (tmp = 36281) Then
GetSpellChar = "F1"
ElseIf (tmp >= 47297 And tmp <= 47613) Or (tmp = 65607) Or (tmp = 65639) Or (tmp = 35949) Or (tmp = 36089) Or (tmp = 36694) Or (tmp = 34808) Then
GetSpellChar = "G1"
ElseIf (tmp >= 47614 And tmp <= 48118) Or (tmp = 59112) Or (tmp = 40296) Or (tmp = 65608) Or (tmp = 65640) Then
GetSpellChar = "H1"
ElseIf (tmp = 65641) Or (tmp = 65609) Or (tmp = 65641) Then
GetSpellChar = "I1"
ElseIf (tmp >= 48119 And tmp <= 49061 And tmp <> 48739) Or (tmp >= 62430 And tmp <= 62430) Or (tmp = 65610) Or (tmp = 65642) Or (tmp = 39048) Then
GetSpellChar = "J1"
ElseIf (tmp >= 49062 And tmp <= 49323) Or (tmp = 65611) Or (tmp = 65643) Then
GetSpellChar = "K1"
ElseIf (tmp >= 49324 And tmp <= 49895) Or (tmp >= 58838 And tmp <= 58838) Or (tmp = 65612) Or (tmp = 65644) Or (tmp = 62418) Or (tmp = 48739) Then
GetSpellChar = "L1"
ElseIf (tmp >= 49896 And tmp <= 50370) Or (tmp = 63432) Or (tmp = 65613) Or (tmp = 65645) Then
GetSpellChar = "M1"
ElseIf (tmp >= 50371 And tmp <= 50613) Or (tmp = 65614) Or (tmp = 65646) Then
GetSpellChar = "N1"
ElseIf (tmp >= 50614 And tmp <= 50621) Or (tmp = 65615) Or (tmp = 65615) Or (tmp = 65647) Then
GetSpellChar = "O1"
ElseIf (tmp >= 50622 And tmp <= 50905) Or (tmp = 65616) Or (tmp = 65648) Then
GetSpellChar = "P1"
ElseIf (tmp >= 50906 And tmp <= 51386) Or (tmp >= 62659 And tmp <= 63172) Or (tmp = 63464) Or (tmp = 63226) Or (tmp = 65617) Or (tmp = 65649) Then
GetSpellChar = "Q1"
ElseIf (tmp >= 51387 And tmp <= 51445) Or (tmp = 65618) Or (tmp = 65650) Then
GetSpellChar = "R1"
ElseIf (tmp >= 51446 And tmp <= 52217) Or (tmp = 65619) Or (tmp = 65651) Or (tmp = 34009) Then
GetSpellChar = "S1"
ElseIf (tmp >= 52218 And tmp <= 52697) Or (tmp = 65620) Or (tmp = 65652) Then
GetSpellChar = "T1"
ElseIf (tmp = 65621) Or (tmp = 65653) Then
GetSpellChar = "U1"
ElseIf (tmp = 65622) Or (tmp = 65654) Then
GetSpellChar = "V1"
ElseIf (tmp >= 52698 And tmp <= 52979) Or (tmp = 65623) Or (tmp = 65655) Then
GetSpellChar = "W1"
ElseIf (tmp >= 52980 And tmp <= 53688) Or (tmp = 63182) Or (tmp = 65624) Or (tmp = 65656) Then
GetSpellChar = "X1"
ElseIf (tmp >= 53689 And tmp <= 54480) Or (tmp = 65625) Or (tmp = 65657) Then
GetSpellChar = "Y1"
ElseIf (tmp >= 54481 And tmp <= 62383 And tmp <> 59112 And tmp <> 58838 And tmp <> 57566) Or (tmp = 65626) Or (tmp = 65658) Or (tmp = 38395) Or (tmp = 39783) Then
GetSpellChar = "Z1"
End If
If (tmp >= 65601 And tmp <= 65658) Then GetSpellChar = UCase(Left(Trim(str), 1)) '字母
If (tmp >= 65584 And tmp <= 65593) Then GetSpellChar = "123" '数字
'Response.Write(tmp)
End Function
'---------------------------------------------------------------------
'函数:扫描元素mItem是否在元素列表strItemList中
'参数:stritemList(被扫描元素列表,各元素以逗号隔开),mItem(欲匹配元素)
'返回:True(找到)/False
'例:ItemInList("1","1,2,3") = True
'----------------------------------------------------------------------
Public Function ItemInList(strItemList, mItem)
ItemInList = False
If IsNull(strItemList) Or IsNull(mItem = "") Then Exit Function
strItemList = Replace(strItemList, " ", "")
If InStr("," & strItemList & ",", "," & mItem & ",") >= 1 Then
ItemInList = True
End If
End Function
'处理逻辑表达式的转化问题
Public Function translate(sourceStr, fieldStr)
Dim sourceList
Dim resultStr
Dim i, j
If InStr(sourceStr, " ") > 0 Then
Dim isOperator
isOperator = True
sourceList = Split(sourceStr)
'--------------------------------------------------------
' Response.Write "num:" & cstr(ubound(sourceList)) & "<br>"
For i = 0 To UBound(sourceList)
' Response.Write i
Select Case UCase(sourceList(i))
Case "AND", "&", "和", "与"
resultStr = resultStr & " and "
isOperator = True
Case "OR", "|", "或"
resultStr = resultStr & " or "
isOperator = True
Case "NOT", "!", "非", "!", "!"
resultStr = resultStr & " not "
isOperator = True
Case "(", "(", "("
resultStr = resultStr & " ( "
isOperator = True
Case ")", ")", ")"
resultStr = resultStr & " ) "
isOperator = True
Case Else
If sourceList(i) <> "" Then
If Not isOperator Then resultStr = resultStr & " and "
If InStr(sourceList(i), "%") > 0 Then
resultStr = resultStr & " " & fieldStr & " like '" & Replace(sourceList(i), "'", "''") & "' "
Else
resultStr = resultStr & " " & fieldStr & " like '%" & Replace(sourceList(i), "'", "''") & "%' "
End If
isOperator = False
End If
End Select
' Response.write resultStr+"<br>"
Next
translate = resultStr
Else '单条件
If InStr(sourceStr, "%") > 0 Then
translate = " " & fieldStr & " like '" & Replace(sourceStr, "'", "''") & "' "
Else
translate = " " & fieldStr & " like '%" & Replace(sourceStr, "'", "''") & "%' "
End If
' 前后各加一个空格,免得连sql时忘了加,而出错。
End If
End Function
Public Function CheckIDCard(sStr, ByVal dDate, ByVal nSex)
CheckIDCard = False
If IsNull(sStr) Or sStr = "" Then Exit Function
If Not IsDate(dDate) Or dDate = "" Then Exit Function
If Not IsNumeric(nSex) Or nSex = "" Then Exit Function
Dim oRE, sDate
Set oRE = New RegExp
oRE.IgnoreCase = True
oRE.Global = True
nSex = CInt(nSex Mod 2)
sDate = Year(dDate) & DblNum(Month(dDate)) & DblNum(Day(dDate))
Select Case Len(sStr)
Case 8
If DateDiff("yyyy", dDate, Date) < 19 Then Exit Function
oRE.Pattern = "^[\d]{8}$"
If Not oRE.test(sStr) Then Exit Function
If sStr <> sDate Then Exit Function
Case 15
oRE.Pattern = "^[\d]{15}$"
If Not oRE.test(sStr) Then Exit Function
If Mid(sStr, 7, 6) <> Right(sDate, 6) Then Exit Function
If CInt(Mid(sStr, 14, 1)) Mod 2 <> nSex Then Exit Function
Case 18
oRE.Pattern = "^(?:[\d]{18}|[\d]{17}X)$"
If Not oRE.test(sStr) Then Exit Function
If Mid(sStr, 7, 8) <> sDate Then Exit Function
If CInt(Mid(sStr, 17, 1)) Mod 2 <> nSex Then Exit Function
Dim nN, aW, ac, nL
nN = 0
aW = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
ac = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")
For nL = 1 To 17
nN = nN + CInt(Mid(sStr, nL, 1)) * aW(nL - 1)
Next
If UCase(Right(sStr, 1)) <> ac(nN Mod 11) Then Exit Function
Case Else
Exit Function
End Select
Set oRE = Nothing
CheckIDCard = True
End Function
Private Function DblNum(nNum)
DblNum = nNum
If DblNum < 10 Then DblNum = "0" & DblNum
End Function
'记录查询错误事件
Public Function SaveSQLLOG(sCommand, message)
Dim Log_ConnStr, Log_Conn, ldb, sql, Rs
ldb = "data/SQL_LOG.mdb"
Log_ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(ldb)
Set Log_Conn = Server.CreateObject("ADODB.Connection")
Log_Conn.open Log_ConnStr
Set Rs = Server.CreateObject("adodb.recordset")
sql = "select * from Mesky_sql_log"
Rs.open sql, Log_Conn, 1, 3
Rs.AddNew
Rs("ScriptName") = ScriptName
Rs("S_Info") = Left(sCommand, 255)
Rs("ip") = UserTrueIP
Rs.Update
Rs.Close
Set Rs = Nothing
Log_Conn.Execute (sql)
Log_Conn.Close
Set Log_Conn = Nothing
SaveSQLLOG = message
End Function
'IP/来源
Public Function address(sip)
Dim aConnStr, aConn, adb
Dim str1, str2, str3, str4
Dim num
Dim country, city
Dim irs, sql
If IsNumeric(Left(sip, 2)) Then
If sip = "127.0.0.1" Then sip = "192.168.0.1"
str1 = Left(sip, InStr(sip, ".") - 1)
sip = Mid(sip, InStr(sip, ".") + 1)
str2 = Left(sip, InStr(sip, ".") - 1)
sip = Mid(sip, InStr(sip, ".") + 1)
str3 = Left(sip, InStr(sip, ".") - 1)
str4 = Mid(sip, InStr(sip, ".") + 1)
If IsNumeric(str1) = 0 Or IsNumeric(str2) = 0 Or IsNumeric(str3) = 0 Or IsNumeric(str4) = 0 Then
Else
num = CLng(str1) * 16777216 + CLng(str2) * 65536 + CLng(str3) * 256 + CLng(str4) - 1
adb = "data/ipaddress.mdb"
aConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(adb)
Set aConn = Server.CreateObject("ADODB.Connection")
aConn.open aConnStr
sql = "select top 1 country,city from Mesky_address where ip1 <=" & num & " and ip2 >=" & num & ""
Set irs = aConn.Execute(sql)
If irs.EOF And irs.BOF Then
country = "亚洲"
city = ""
Else
country = irs(0)
city = irs(1)
End If
Set irs = Nothing
Set aConn = Nothing
SqlQueryNum = SqlQueryNum + 1
End If
address = country & city
Else
address = "未知"
End If
End Function
end class
Class Cls_Browser
Public Browser, Version, platform, IsSearch
Private Sub Class_Initialize()
Dim Agent, Tmpstr
IsSearch = False
If Not IsEmpty(Session("Cls_Browser")) Then
Tmpstr = Split(Session("Cls_Browser"), "|||")
Browser = Tmpstr(0)
Version = Tmpstr(1)
platform = Tmpstr(2)
If Tmpstr(3) = "1" Then
IsSearch = True
End If
Exit Sub
End If
Browser = "unknown"
Version = "unknown"
platform = "unknown"
Agent = Request.ServerVariables("HTTP_USER_AGENT")
'Agent="Opera/7.23 (X11; Linux i686; U) [en]"
If Left(Agent, 7) = "Mozilla" Then '有此标识为浏览器
Agent = Split(Agent, ";")
If InStr(Agent(1), "MSIE") > 0 Then
Browser = "Microsoft Internet Explorer "
Version = Trim(Left(Replace(Agent(1), "MSIE", ""), 6))
ElseIf InStr(Agent(4), "Netscape") > 0 Then
Browser = "Netscape "
Tmpstr = Split(Agent(4), "/")
Version = Tmpstr(UBound(Tmpstr))
ElseIf InStr(Agent(4), "rv:") > 0 Then
Browser = "Mozilla "
Tmpstr = Split(Agent(4), ":")
Version = Tmpstr(UBound(Tmpstr))
If InStr(Version, ")") > 0 Then
Tmpstr = Split(Version, ")")
Version = Tmpstr(0)
End If
End If
If InStr(Agent(2), "NT 5.2") > 0 Then
platform = "Windows Server 2003"
ElseIf InStr(Agent(2), "Windows CE") > 0 Then
platform = "Windows CE"
ElseIf InStr(Agent(2), "NT 5.1") > 0 Then
platform = "Windows XP"
ElseIf InStr(Agent(2), "NT 4.0") > 0 Then
platform = "Windows NT"
ElseIf InStr(Agent(2), "NT 5.0") > 0 Then
platform = "Windows 2000"
ElseIf InStr(Agent(2), "NT") > 0 Then
platform = "Windows NT"
ElseIf InStr(Agent(2), "9x") > 0 Then
platform = "Windows ME"
ElseIf InStr(Agent(2), "98") > 0 Then
platform = "Windows 98"
ElseIf InStr(Agent(2), "95") > 0 Then
platform = "Windows 95"
ElseIf InStr(Agent(2), "Win32") > 0 Then
platform = "Win32"
ElseIf InStr(Agent(2), "Linux") > 0 Then
platform = "Linux"
ElseIf InStr(Agent(2), "SunOS") > 0 Then
platform = "SunOS"
ElseIf InStr(Agent(2), "Mac") > 0 Then
platform = "Mac"
ElseIf UBound(Agent) > 2 Then
If InStr(Agent(3), "NT 5.1") > 0 Then
platform = "Windows XP"
End If
If InStr(Agent(3), "Linux") > 0 Then
platform = "Linux"
End If
End If
If InStr(Agent(2), "Windows") > 0 And platform = "unknown" Then
platform = "Windows"
End If
ElseIf Left(Agent, 5) = "Opera" Then '有此标识为浏览器
Agent = Split(Agent, "/")
Browser = "Mozilla "
Tmpstr = Split(Agent(1), " ")
Version = Tmpstr(0)
If InStr(Agent(1), "NT 5.2") > 0 Then
platform = "Windows 2003"
ElseIf InStr(Agent(1), "Windows CE") > 0 Then
platform = "Windows CE"
ElseIf InStr(Agent(1), "NT 5.1") > 0 Then
platform = "Windows XP"
ElseIf InStr(Agent(1), "NT 4.0") > 0 Then
platform = "Windows NT"
ElseIf InStr(Agent(1), "NT 5.0") > 0 Then
platform = "Windows 2000"
ElseIf InStr(Agent(1), "NT") > 0 Then
platform = "Windows NT"
ElseIf InStr(Agent(1), "9x") > 0 Then
platform = "Windows ME"
ElseIf InStr(Agent(1), "98") > 0 Then
platform = "Windows 98"
ElseIf InStr(Agent(1), "95") > 0 Then
platform = "Windows 95"
ElseIf InStr(Agent(1), "Win32") > 0 Then
platform = "Win32"
ElseIf InStr(Agent(1), "Linux") > 0 Then
platform = "Linux"
ElseIf InStr(Agent(1), "SunOS") > 0 Then
platform = "SunOS"
ElseIf InStr(Agent(1), "Mac") > 0 Then
platform = "Mac"
ElseIf UBound(Agent) > 2 Then
If InStr(Agent(3), "NT 5.1") > 0 Then
platform = "Windows XP"
End If
If InStr(Agent(3), "Linux") > 0 Then
platform = "Linux"
End If
End If
Else
'识别搜索引擎
Dim botlist, i
botlist = "Google,Isaac,Webdup,SurveyBot,Baiduspider,ia_archiver,P.Arthur,FAST-WebCrawler,Java,Microsoft-ATL-Native,TurnitinBot,WebGather,Sleipnir"
botlist = Split(botlist, ",")
For i = 0 To UBound(botlist)
If InStr(Agent, botlist(i)) > 0 Then
platform = botlist(i) & "搜索器"
IsSearch = True
Exit For
End If
Next
End If
If Version <> "unknown" Then
Dim Tmpstr1
Tmpstr1 = Trim(Replace(Version, ".", ""))
If Not IsNumeric(Tmpstr1) Then
Version = "unknown"
End If
End If
If IsSearch Then
Browser = ""
Version = ""
Session("Cls_Browser") = Browser & "|||" & Version & "|||" & platform & "|||1"
Else
Session("Cls_Browser") = Browser & "|||" & Version & "|||" & platform & "|||0"
End If
Exit Sub '官方站屏蔽此句 客户的去掉屏蔽
'记录未知Agent
If Browser = "unknown" Or Version = "unknown" Or platform = "unknown" Then
Agent = Dvbbs.checkStr(Request.ServerVariables("HTTP_USER_AGENT"))
Dim Log_ConnStr, Log_Conn, Log_db, Rs
Log_db = "data/SQL_LOG.mdb"
Log_ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(Log_db)
Set Log_Conn = Server.CreateObject("ADODB.Connection")
Log_Conn.open Log_ConnStr
Set Rs = Log_Conn.Execute("select * from [Agent] where UserAgent='" & Agent & "'")
If Rs.EOF Then
Set Rs = Nothing
Log_Conn.Execute ("insert into [Agent](UserAgent)Values('" & Agent & "')")
End If
Log_Conn.Close
Set Log_Conn = Nothing
End If
End Sub
End Class %>
class cls_main
Public ScriptName, SqlQueryNum, savelog, system, ResLicence, ResType, ResLanguage, UserClass, strMsg, RefererPage
Public adminName, adminPass, System_Sn, UserTrueIP
Public Reloadtime, MaxCount, CacheName, Cache_Data, sPath
Private LocalCacheName, CacheData, DelCount, ArrSetting
Public MemberUserName, MemberUserID, MemberUserPassword, MemberUserClass, MemberVipType
'类初始化
Private Sub Class_Initialize()
savelog = 0 '设置为1的时候会记录攻击或错误错信息。
SqlQueryNum = 0
Dim Tmpstr, i
Tmpstr = Request.ServerVariables("PATH_INFO")
Tmpstr = Split(Tmpstr, "/")
i = UBound(Tmpstr)
ScriptName = LCase(Tmpstr(i))
RefererPage = Request.ServerVariables("HTTP_REFERER")
adminName = Session("adminName")
adminPass = Session("adminPass")
Reloadtime = 14400
CacheName = Replace(Replace(Replace(Server.MapPath("index.asp"), "index.asp", ""), ":", ""), "\", "")
System_Sn = LCase(Replace(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"), Split(Request.ServerVariables("SCRIPT_NAME"), "/")(UBound(Split(Request.ServerVariables("SCRIPT_NAME"), "/"))), ""))
UserTrueIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If UserTrueIP = "" Then UserTrueIP = Request.ServerVariables("REMOTE_ADDR")
UserTrueIP = checkStr(UserTrueIP)
If SystemEdition = 3 Then
sPath = "../"
Else
sPath = ""
End If
MemberUserName = checkStr(Request.Cookies(System_Sn)("MemberUserName"))
MemberUserID = checkStr(Request.Cookies(System_Sn)("MemberUserID"))
MemberUserPassword = checkStr(Request.Cookies(System_Sn)("MemberUserPassword"))
MemberUserClass = checkStr(Request.Cookies(System_Sn)("MemberUserClass"))
MemberVipType = checkStr(Request.Cookies(System_Sn)("MemberVipType"))
End Sub
'类结束
Private Sub Class_Terminate()
If IsObject(Conn) Then
'Conn.Close
Set Conn = Nothing
End If
End Sub
Public Property Let Name(ByVal vNewValue)
LocalCacheName = LCase(vNewValue)
End Property
Public Property Let Value(ByVal vNewValue)
If LocalCacheName <> "" Then
ReDim Cache_Data(2)
Cache_Data(0) = vNewValue
Cache_Data(1) = Now()
Application.Lock
Application(CacheName & "_" & LocalCacheName) = Cache_Data
Application.UnLock
Else
Err.Raise vbObjectError + 1, "Mesky.Cn CacheServer", " please change the CacheName."
End If
End Property
Public Property Get Value()
If LocalCacheName <> "" Then
Cache_Data = Application(CacheName & "_" & LocalCacheName)
If IsArray(Cache_Data) Then
Value = Cache_Data(0)
Else
Err.Raise vbObjectError + 1, "Mesky.Cn CacheServer", " The Cache_Data(" & LocalCacheName & ") Is Empty."
End If
Else
Err.Raise vbObjectError + 1, "Mesky.Cn CacheServer", " please change the CacheName."
End If
End Property
Public Function ObjIsEmpty()
ObjIsEmpty = True
Cache_Data = Application(CacheName & "_" & LocalCacheName)
If Not IsArray(Cache_Data) Then Exit Function
If Not IsDate(Cache_Data(1)) Then Exit Function
If DateDiff("s", CDate(Cache_Data(1)), Now()) < (60 * Reloadtime) Then ObjIsEmpty = False
End Function
Public Sub DelCahe(MyCaheName)
Application.Lock
Application.Contents.Remove (CacheName & "_" & MyCaheName)
Application.UnLock
End Sub
'加载系统配置信息
Public Sub LoadSetting()
Dim Rs
'If Not IsObject(Conn) Then ConnectionDatabase
Set Rs = Execute("Select Setting From Mesky_Setting where isDefault=1")
ArrSetting = Split(Rs("Setting"), "{$}")
Set Rs = Nothing
system = Split(ArrSetting(144), ",")
ResLicence = Split(ArrSetting(141), ",")
ResLanguage = Split(ArrSetting(142), ",")
ResType = Split(ArrSetting(143), ",")
UserClass = Split(ArrSetting(140), ",")
Name = "StyleName"
If ObjIsEmpty Then Call ReloadTemplates
End Sub
Public Function Setting(s)
Setting = ArrSetting(s)
End Function
Public Sub ReloadTemplates()
Dim Rs, i
Set Rs = Execute("select top 1 * from Mesky_Style where isDefault =1")
If Not (Rs.EOF And Rs.BOF) Then
For i = 2 To Rs.Fields.Count - 3
Name = Rs(i).Name
'Response.Write(Rs(i).Name)
Value = Rs(i).Value
Next
End If
Set Rs = Nothing
End Sub
Public Function ReadStylePage(Page)
Name = Page
If ObjIsEmpty Then Call ReloadTemplates
Name = Page
ReadStylePage = Value
End Function
'检查管理员权限
'参数:sName(管理员用户名),sItem(权限项目)(sItem=0 只检查超管权限)
'返回:True/False
Public Function checkPermission(sName, sItem)
checkPermission = False
If sName = "" Or IsNull(sName) Then Exit Function
Dim cRs
Set cRs = Execute("select isAdmin,Permission,Password from Mesky_SiteManager Where UserName='" & checkStr(sName) & "'")
If Not (cRs.EOF And cRs.BOF) Then
If adminPass = cRs(2) Then
If cRs(0) Then checkPermission = True
If sItem <> 0 Then
If ItemInList(cRs(1), sItem) Then checkPermission = True
End If
End If
End If
Set cRs = Nothing
End Function
'
'资源分类下载列表
'参数:catalogID(被默认选择的分类ID);tableName(数据库表名)
'返回: 字符串 0=RootID;1=CatalogID;2=Depth;3=CatalogName
Public Function GetCatalogSelect(catalogID, fromName)
Dim tRs, s, i
s = " <option value="""">所有分类</option>" & vbCrLf
Set tRs = Execute("select RootID,CatalogID,Depth,CatalogName from " & fromName & " order by rootid,orders")
Do While Not tRs.EOF
s = s & " <option value=""" & tRs(0) & "," & tRs(1) & "," & tRs(2) & "," & tRs(3) & """ "
If catalogID <> 0 Then
If tRs(1) = catalogID Then s = s & "selected"
End If
s = s & ">"
If tRs(2) = 1 Then s = s & " ├ "
If tRs(2) > 1 Then
For i = 2 To tRs(2)
s = s & " │"
Next
s = s & " ├ "
End If
s = s & tRs(3) & "</option>" & vbCrLf
tRs.MoveNext
Loop
Set tRs = Nothing
GetCatalogSelect = s
s = Null
End Function
'相关下载资源
'参数:Keys,cutNum
'for 标准版 and 高级版
Public Function MutualityDownRes(Keys, topNum, ID)
Dim tRs, s
If topNum = 0 Then
Set tRs = Execute("Select ID,ResName,ResVer From Mesky_Down_Resource where (ResName like '%" & Keys & "%') And ID<>" & ID & " and isAuditing=1 order by ID Desc")
Else
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer From Mesky_Down_Resource where (ResName like '%" & Keys & "%') And ID<>" & ID & " and isAuditing=1 order by ID Desc")
End If
If tRs.EOF And tRs.BOF Then
s = ""
Else
dim arrA,arrB,i
i = 1
Do While Not tRs.EOF
If i = 1 then
arrA = tRs(0)
arrB = tRs(1) & " " & tRs(2)
Else
arrA = arrA & "###" & tRs(0)
arrB = arrB & "$$$" & tRs(1) & " " & tRs(2)
End If
i = i + 1
tRs.MoveNext
Loop
s = arrA & "|||" & arrB
End If
Set tRs = Nothing
MutualityDownRes = s
s = Null
End Function
'相关文章资源
'参数:Keys,cutNum
'for 标准版 and 高级版
Public Function MutualityCmsRes(Keys, topNum, ID)
Dim tRs, s
If topNum = 0 Then
Set tRs = Execute("Select ID,Title From Mesky_Cms_Resource where Title like '%" & Keys & "%' And ID<>" & ID & " and isAuditing=1 order by ID Desc")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title From Mesky_Cms_Resource where Title like '%" & Keys & "%' And ID<>" & ID & " and isAuditing=1 order by ID Desc")
End If
If tRs.EOF And tRs.BOF Then
s = ""
Else
dim arrA,arrB,i
i = 1
Do While Not tRs.EOF
If i = 1 then
arrA = tRs(0)
arrB = tRs(1)
Else
arrA = arrA & "###" & tRs(0)
arrB = arrB & "$$$" & tRs(1)
End If
i = i + 1
tRs.MoveNext
Loop
s = arrA & "|||" & arrB
End If
Set tRs = Nothing
MutualityCmsRes = s
s = Null
End Function
'相关下载资源
'参数:Keys,cutNum
'for 标准版 and 高级版
Public Function showMutualityDownRes(strRes,cutNum)
If IsNull(strRes) or strRes="" then
showMutualityDownRes = ""
Exit Function
End If
Dim i, s, arrA, arrB
arrA = split(strRes,"|||")(0)
arrB = split(strRes,"|||")(1)
arrA = split(arrA,"###")
arrB = split(arrB,"$$$")
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""1"">"
For i = 0 to Ubound(arrA)
s = s & "<tr><td>·<a href=""" & sPath & Replace(Setting(77), "{$id}", arrA(i)) & """>" & cutStr(arrB(i), Int(cutNum)) & "</a></td></tr>"
Next
s = s & "</table>"
showMutualityDownRes = s
s = Null
End Function
'相关文章资源
'参数:Keys,cutNum
'for 标准版 and 高级版
Public Function showMutualityCmsRes(strRes,cutNum)
If IsNull(strRes) or strRes="" then
showMutualityCmsRes = ""
Exit Function
End If
Dim i, s, arrA, arrB
arrA = split(strRes,"|||")(0)
arrB = split(strRes,"|||")(1)
arrA = split(arrA,"###")
arrB = split(arrB,"$$$")
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""1"">"
For i = 0 to Ubound(arrA)
s = s & "<tr><td>·<a href=""" & sPath & Replace(Setting(101), "{$id}", arrA(i)&"_1") & """>" & cutStr(arrB(i), Int(cutNum)) & "</a></td></tr>"
Next
s = s & "</table>"
showMutualityCmsRes = s
s = Null
End Function
Public Function showNews(topNum,cutNum1,cutNum2,isType)
dim tRs,s,i
if Int(isType) = 1 then
Set tRs = Execute("select top "&topNum&" * from Mesky_News where isType = 1 order By ID Desc")
ElseIf Int(isType) = 2 then
Set tRs = Execute("select top "&topNum&" * from Mesky_News where isType = 2 order By ID Desc")
Else
Set tRs = Execute("select top "&topNum&" * from Mesky_News order By ID Desc")
End if
If tRs.Eof and tRs.Bof then
showNews = ""
Else
i = 1
Do While Not tRs.EOF
If i > 1 then s = s & "<br>"
s = s & "·<a href=""ViewNews.asp?ID="&tRs("ID")&"&isType="&isType&""" target=""_blank"">"&cutStr(tRs("Title"),Int(cutNum1))&"</a>"
if Int(cutNum2) > 0 then
s = s & "<br>" & cutStr(tRs("Content"),Int(cutNum2))
End If
s = s &" "& FormatDateTime(tRs("DateAndTime"),2)
i = i + 1
tRs.MoveNext
Loop
End If
showNews = s
s = Null
Set tRs = Nothing
End Function
'资源列表分类导航
'for 标准版 And 高级版
Public Function catalog_nav(rootID, catalogID, depth, fromName)
Dim s, tRs, i, FileName
If rootID = 0 And catalogID = 0 Then
Set tRs = Execute("select catalogID,catalogName,rootID,depth,Child,ResNum from " & fromName & " where depth=0 order by rootID")
Else '根分类 rootID>0
Set tRs = Execute("select catalogID,catalogName,rootID,depth,Child,ResNum from " & fromName & " where rootID=" & rootID & " and depth>0 order by orders")
End If
If tRs.EOF And tRs.BOF Then
s = "Sorry!没有找到相关的分类数据。"
Else
s = "<table width=""80%"" border=""0"" align=""center"">" & vbCrLf
Do While Not tRs.EOF
s = s & "<tr><td>"
If tRs(3) > 1 Then
For i = 2 To tRs(3)
s = s & " "
Next
End If
If rootID = 0 Then
s = s & "<img src=""" & sPath & "images/+.gif"" border=""0"" align=""absmiddle""> "
ElseIf tRs(4) > 0 And rootID > 0 And catalogID > 0 Then
s = s & "<img src=""" & sPath & "images/+.gif"" border=""0"" align=""absmiddle""> "
Else
s = s & "<img src=""" & sPath & "images/-.gif"" border=""0"" align=""absmiddle""> "
End If
If rootID = 0 Then
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(72)
Else
FileName = Setting(97)
End If
s = s & "<a href=""" & sPath & Replace(Replace(FileName, "{$id}", tRs(2)), "{$pages}", "1") & """>" & tRs(1) & "</a> (<font color=red>" & tRs(5) & "</font>)"
Else
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(73)
Else
FileName = Setting(98)
End If
s = s & "<a href=""" & sPath & Replace(Replace(FileName, "{$id}", tRs(0)), "{$pages}", "1") & """>" & tRs(1) & "</a> (<font color=red>" & tRs(5) & "</font>)"
If tRs(0) = catalogID Then s = s & "←"
End If
s = s & "</td></tr>"
tRs.MoveNext
Loop
s = s & "</table>"
End If
Set tRs = Nothing
catalog_nav = s
s = Null
End Function
'当前位置 导航
'for 标准版
Public Function site_nav(catalogID, fromName, GetTitle, GetURL)
Dim s, tRs, catalogName, ParentID, ParentStr, depth, rootID, FileName
If LCase(fromName) = "mesky_down_catalog" Then
s = s & "<a href=""" & sPath & Setting(70) & """>下载首页</a> "
Else
s = s & "<a href=""" & sPath & Setting(95) & """>首页</a> "
End If
If catalogID > 0 Then
Set tRs = Execute("select catalogName,ParentID,ParentStr,depth,rootID from " & fromName & " where catalogID=" & catalogID)
If Not (tRs.EOF And tRs.BOF) Then
catalogName = tRs(0)
ParentID = tRs(1)
ParentStr = tRs(2)
depth = tRs(3)
rootID = tRs(4)
End If
Set tRs = Nothing
If ParentID <> 0 Then
Set tRs = Execute("select catalogID,catalogName,depth,rootID from " & fromName & " where catalogID in(" & ParentStr & ")")
If Not (tRs.EOF And tRs.BOF) Then
Do While Not tRs.EOF
If tRs(2) > 0 Then
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(73)
Else
FileName = Setting(98)
End If
s = s & " → <a href=""" & sPath & Replace(Replace(FileName, "{$id}", tRs(0)), "{$pages}", "1") & """>" & tRs(1) & "</a>"
Else
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(72)
Else
FileName = Setting(97)
End If
s = s & " → <a href=""" & sPath & Replace(Replace(FileName, "{$id}", tRs(3)), "{$pages}", "1") & """>" & tRs(1) & "</a>"
End If
tRs.MoveNext
Loop
End If
Set tRs = Nothing
End If
If depth > 0 Then
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(73)
Else
FileName = Setting(98)
End If
s = s & " → <a href=""" & sPath & Replace(Replace(FileName, "{$id}", catalogID), "{$pages}", "1") & """>" & catalogName & "</a>"
Else
If LCase(fromName) = "mesky_down_catalog" Then
FileName = Setting(72)
Else
FileName = Setting(97)
End If
s = s & " → <a href=""" & sPath & Replace(Replace(FileName, "{$id}", rootID), "{$pages}", "1") & """>" & catalogName & "</a>"
End If
End If
If GetURL <> "" Then
s = s & " → <a href=""" & GetURL & """>" & GetTitle & "</a>"
Else
s = s & " → " & GetTitle
End If
site_nav = s
s = Null
End Function
'资源分类页
'for 标准版 and 高级版
Public Function showDownResCatalog()
Dim s, Rs, sRs, i, x, y, brNum
brNum = 6
s = s & "<table width=""770"" border=""0"" align=""center"" cellpadding=""2"" cellspacing=""1"">" & vbCrLf
Set Rs = Execute("select catalogID,catalogName,rootID,depth from Mesky_Down_catalog where Depth=0 order by rootID")
i = 1
If Not (Rs.EOF And Rs.BOF) Then
Do While Not Rs.EOF
s = s & " <tr class=""tdbg" & i Mod 2 + 1 & """>" & vbCrLf
s = s & " <td width=""100"" align=""center""><a href=""" & sPath & Replace(Replace(Setting(72), "{$id}", Rs(2)), "{$pages}", "1") & """>" & Rs(1) & "</a> <a href=""xml/rss_Down_r" & Rs(2) & ".xml""><img src=""" & sPath & "images/rss.gif"" border=""0"" align=""absmiddle""></a></td>" & vbCrLf
s = s & " <td><table width=""100%"" border=""0"" cellspacing=""1"" cellpadding=""3"">" & vbCrLf
s = s & " <tr>" & vbCrLf
Set sRs = Execute("select catalogID,catalogName,rootID,depth from Mesky_Down_catalog where ParentID=" & Rs(0) & " order by orders")
If Not (sRs.EOF And sRs.BOF) Then
x = 1
Do While Not sRs.EOF
s = s & " <td align=""center"" width=""12.5%""><a href=""" & sPath & Replace(Replace(Setting(73), "{$id}", sRs(0)), "{$pages}", "1") & """>" & sRs(1) & "</a> <a href=""xml/rss_Down_s" & sRs(0) & ".xml"" class=""f11"">(RSS)</a></td>" & vbCrLf
If (x Mod brNum) = 0 Then s = s & "</tr><tr>" & vbCrLf
x = x + 1
sRs.MoveNext
Loop
If (x Mod brNum) > 0 Then
For y = 0 To (brNum - (x Mod brNum))
s = s & "<td align=""center"" width=""12.5%"">.</td>" & vbCrLf
Next
End If
If x = brNum Then
For y = 0 To (brNum - x)
s = s & "<td align=""center"" width=""12.5%"">.</td>" & vbCrLf
Next
End If
End If
Set sRs = Nothing
s = s & " </tr>" & vbCrLf
s = s & " </table></td>" & vbCrLf
s = s & " </tr>" & vbCrLf
i = i + 1
Rs.MoveNext
Loop
End If
Set Rs = Nothing
s = s & "</table>"
showDownResCatalog = s
s = Null
End Function
'资源分类页
'for 标准版 高级版
Public Function showCmsResCatalog()
Dim s, Rs, sRs, i, x, y, brNum
brNum = 5
s = s & "<table width=""770"" border=""0"" align=""center"" cellpadding=""2"" cellspacing=""1"">" & vbCrLf
Set Rs = Execute("select catalogID,catalogName,rootID,depth from Mesky_Cms_catalog where Depth=0 order by rootID")
i = 1
If Not (Rs.EOF And Rs.BOF) Then
Do While Not Rs.EOF
s = s & " <tr class=""tdbg" & i Mod 2 + 1 & """>" & vbCrLf
s = s & " <td width=""100"" align=""center""><a href=""" & sPath & Replace(Replace(Setting(97), "{$id}", Rs(2)),"{$pages}","1") & """>" & Rs(1) & "</a> <a href=""xml/rss_Cms_r" & Rs(2) & ".xml""><img src=""" & sPath & "images/rss.gif"" border=""0"" align=""absmiddle""></a></td>" & vbCrLf
s = s & " <td><table width=""100%"" border=""0"" cellspacing=""1"" cellpadding=""3"">" & vbCrLf
s = s & " <tr>" & vbCrLf
Set sRs = Execute("select catalogID,catalogName,rootID,depth from Mesky_Cms_catalog where ParentID=" & Rs(0) & " order by orders")
If Not (sRs.EOF And sRs.BOF) Then
x = 1
Do While Not sRs.EOF
s = s & " <td align=""center"" width=""12.5%""><a href=""" & sPath & Replace(Replace(Setting(98), "{$id}", sRs(0)),"{$pages}","1") & """>" & sRs(1) & "</a> <a href=""xml/rss_Cms_s" & sRs(0) & ".xml"" class=""f11"">(RSS)</a></td>" & vbCrLf
If (x Mod brNum) = 0 Then s = s & "</tr><tr>"
x = x + 1
sRs.MoveNext
Loop
If (x Mod brNum) > 0 Then
For y = 0 To (brNum - (x Mod brNum))
s = s & "<td align=""center"" width=""12.5%"">.</td>" & vbCrLf
Next
End If
If x = brNum Then
For y = 0 To (brNum - x)
s = s & "<td align=""center"" width=""12.5%"">.</td>" & vbCrLf
Next
End If
End If
Set sRs = Nothing
s = s & " </tr>" & vbCrLf
s = s & " </table></td>" & vbCrLf
s = s & " </tr>" & vbCrLf
i = i + 1
Rs.MoveNext
Loop
End If
Set Rs = Nothing
s = s & "</table>"
showCmsResCatalog = s
s = Null
End Function
'for 标准版 and 高级版 首页
Public Function showDownResAdv(strWhere, strOrder, topNum, cutNum, showDate, showDot, showHrline, showCatalogName)
Dim tRs, s, i, strDot, strHits
If InStr(LCase(strOrder), "hits") > 0 Then
strHits = Replace(Replace(Replace(LCase(strOrder), "desc", ""), "asc", ""), " ", "")
Else
strHits = "HitsTotal"
End If
If (showDot = "" Or showDot = "0") Then
strDot = "·"
Else
strDot = showDot
End If
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer,catalogID,catalogName," & strHits & ",UpdateTime From Mesky_Down_Resource where " & strWhere & " and isAuditing=1 order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer,catalogID,catalogName," & strHits & ",UpdateTime From Mesky_Down_Resource where isAuditing=1 order by " & strOrder & "")
End If
s = "<table width=""99%"" border=""0"" cellspacing=""0"" cellpadding=""2"" align=""center"">" & vbCrLf
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
Do While Not tRs.EOF
s = s & " <tr>" & vbCrLf
s = s & " <td>" & strDot
If showCatalogName Then '显示分类
s = s & "[<a href=""" & Replace(Replace(Setting(73), "{$id}", tRs(3)), "{$pages}", "1") & """ target=""_blank"">" & tRs(4) & "</a>]"
End If
s = s & " <a href=""" & Replace(Setting(77), "{$id}", tRs(0)) & """ target=""_blank"" Title=""" & tRs(1) & " " & tRs(2) & """>" & cutStr(tRs(1) & " " & tRs(2), Int(cutNum)) & "</a> </td>"
If showDate = "Hits" Then '显示时间还是人气
s = s & "<td width=""30"">" & tRs(5) & "</td>" & vbCrLf
Else
s = s & "<td width=""30"">" & FormatMyDate(tRs(6), showDate) & "</td>" & vbCrLf
End If
s = s & " </tr>" & vbCrLf
If showHrline Then s = s & "<tr><td height=""1"" colspan=""2"" background=""images/bg_dot.gif""></td></tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
s = s & "</table>" & vbCrLf
showDownResAdv = s
s = Null
End Function
'for 标准版 and 高级版
Public Function showDownRes(strWhere, strOrder, topNum, cutNum, showDot, showHrline)
Dim tRs, s, i, strDot
i = 1
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer From Mesky_Down_Resource where " & strWhere & " and isAuditing=1 order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer From Mesky_Down_Resource where isAuditing=1 order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = ""
Else
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""1"">" & vbCrLf
Do While Not tRs.EOF
If (showDot = "" Or showDot = "0") Then
strDot = "" & Right("0" & i, 2) & "."
Else
strDot = showDot
End If
s = s & " <tr><td><font color=red>" & strDot & "</font><a href=""" & sPath & Replace(Setting(77), "{$id}", tRs(0)) & """>" & cutStr(tRs(1) & " " & tRs(2), Int(cutNum)) & "</a></td></tr>" & vbCrLf
If showHrline Then s = s & "<tr><td height=""1"" background=""" & sPath & "images/bg_dot.gif""></td></tr>" & vbCrLf
i = i + 1
tRs.MoveNext
Loop
s = s & "</table>"
End If
Set tRs = Nothing
showDownRes = s
s = Null
End Function
'for 标准版 and 高级版 首页
Public Function showCmsResAdv(strWhere, strOrder, topNum, cutNum, showDate, showDot, showHrline, showCatalogName)
Dim tRs, s, i, strDot
If (showDot = "" Or showDot = "0") Then
strDot = "·"
Else
strDot = showDot
End If
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,Title,catalogID,catalogName,Hits,DateAndTime,isComment,RedirectUrl From Mesky_Cms_Resource where " & strWhere & " and isAuditing=1 order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title,catalogID,catalogName,Hits,DateAndTime,isComment,RedirectUrl From Mesky_Cms_Resource where isAuditing=1 order by " & strOrder & "")
End If
s = "<table width=""99%"" border=""0"" cellspacing=""0"" cellpadding=""2"" align=""center"">" & vbCrLf
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
Do While Not tRs.EOF
s = s & " <tr>" & vbCrLf
s = s & " <td>" & strDot
If showCatalogName Then '显示分类
s = s & "[<a href=""" & Replace(Replace(Setting(98), "{$id}", tRs(2)),"{$pages}","1") & """ target=""_blank"">" & tRs(3) & "</a>]"
End If
If tRs(7) <> "" then
s = s & " <a href=""" & tRs(7) & """ target=""_blank"" Title=""" & tRs(1) & """>"
Else
s = s & " <a href=""" & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """ target=""_blank"" Title=""" & tRs(1) & """>"
End IF
'显示评论
If tRs(6) = 1 then
s = s & cutStr(tRs(1), Int(cutNum)-4) & "</a> <a href=""../comment_cms.asp?ID="&tRs(0)&""">评论</a></td>"
Else
s = s & cutStr(tRs(1), Int(cutNum)) & "</a></td>"
End IF
If showDate = "Hits" Then '显示时间还是人气
s = s & "<td width=""30"">" & tRs(4) & "</td>" & vbCrLf
Else
s = s & "<td width=""30"">" & FormatMyDate(tRs(5), showDate) & "</td>" & vbCrLf
End If
s = s & " </tr>" & vbCrLf
If showHrline Then s = s & "<tr><td height=""1"" colspan=""2"" background=""images/bg_dot.gif""></td></tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
s = s & "</table>" & vbCrLf
showCmsResAdv = s
s = Null
End Function
'for 标准版 and 高级版
Public Function showCmsRes(strWhere, strOrder, topNum, cutNum, showDot, showHrline)
Dim tRs, s, i, strDot
i = 1
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,Title,isComment,RedirectUrl From Mesky_Cms_Resource where " & strWhere & " and isAuditing=1 order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title,isComment,RedirectUrl From Mesky_Cms_Resource where isAuditing=1 order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = ""
Else
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""1"">" & vbCrLf
Do While Not tRs.EOF
If (showDot = "" Or showDot = "0") Then
strDot = "" & Right("0" & i, 2) & "."
Else
strDot = showDot
End If
If tRs(3)<>"" then
s = s & " <tr><td><font color=red> " & strDot & "</font><a href=""" & tRs(3) & """>"
Else
s = s & " <tr><td><font color=red> " & strDot & "</font><a href=""" & sPath & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """>"
End IF
'显示评论
If tRs(2) = 1 then
s = s & cutStr(tRs(1), Int(cutNum)-4) & "</a> <a href=""../comment_cms.asp?ID="&tRs(0)&""">评论</a></td></tr>" & vbCrLf
Else
s = s & cutStr(tRs(1), Int(cutNum)) & "</a></td></tr>" & vbCrLf
End IF
If showHrline Then s = s & "<tr><td height=""1"" background=""" & sPath & "images/bg_dot.gif""></td></tr>" & vbCrLf
i = i + 1
tRs.MoveNext
Loop
s = s & "</table>"
End If
Set tRs = Nothing
showCmsRes = s
s = Null
End Function
Public Function showDownResImages(strWhere, strOrder, topNum, cutNum, intWidth, intHeight, isWH)
Dim tRs, s, i
i = 1
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""3"">" & vbCrLf
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer,SmallImg From Mesky_Down_Resource where " & strWhere & " and isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,ResName,ResVer,SmallImg From Mesky_Down_Resource where isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
If isWH = 1 Then s = s & " </tr>" & vbCrLf
Do While Not tRs.EOF
If isWH = 2 Then s = s & " <tr>" & vbCrLf
s = s & " <td align=""center""><a href=""" & sPath & Replace(Setting(77), "{$id}", tRs(0)) & """ target=""_blank"" Title=""" & tRs(1) & " " & tRs(2) & """><img src=""" & sPath & tRs(3) & """ border=0 width=""" & intWidth & """ height=""" & intHeight & """></a>"
s = s & "<br><a href=""" & sPath & Replace(Setting(77), "{$id}", tRs(0)) & """ target=""_blank"">" & cutStr(tRs(1) & " " & tRs(2), Int(cutNum)) & "</a></td>" & vbCrLf
If isWH = 2 Then s = s & " </tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
If isWH = 1 Then s = s & " </tr>" & vbCrLf
s = s & "</table>" & vbCrLf
showDownResImages = s
s = Null
End Function
Public Function showCmsResImages(strWhere, strOrder, topNum, cutNum, intWidth, intHeight, isWH)
Dim tRs, s, i
i = 1
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""3"">" & vbCrLf
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,Title,SmallImg,RedirectUrl From Mesky_Cms_Resource where " & strWhere & " and isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title,SmallImg,RedirectUrl From Mesky_Cms_Resource where isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
If isWH = 1 Then s = s & " </tr>" & vbCrLf
Do While Not tRs.EOF
If isWH = 2 Then s = s & " <tr>" & vbCrLf
If tRs(3) <> "" then
s = s & " <td align=""center""><a href=""" & tRs(3) & """ target=""_blank"" Title=""" & tRs(1) & """><img src=""" & sPath & tRs(2) & """ border=0 width=""" & intWidth & """ height=""" & intHeight & """></a>"
s = s & "<br><a href=""" & tRs(3) & """>" & cutStr(tRs(1), Int(cutNum)) & "</a></td>" & vbCrLf
Else
s = s & " <td align=""center""><a href=""" & sPath & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """ target=""_blank"" Title=""" & tRs(1) & """><img src=""" & sPath & tRs(2) & """ border=0 width=""" & intWidth & """ height=""" & intHeight & """></a>"
s = s & "<br><a href=""" & sPath & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """>" & cutStr(tRs(1), Int(cutNum)) & "</a></td>" & vbCrLf
End IF
If isWH = 2 Then s = s & " </tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
If isWH = 1 Then s = s & " </tr>" & vbCrLf
s = s & "</table>" & vbCrLf
showCmsResImages = s
s = Null
End Function
Public Function showCmsResExcerptImages(strWhere, strOrder, topNum, cutNum1, cutNum2, intWidth, intHeight, isWH)
Dim tRs, s, i
i = 1
s = "<table width=""100%"" border=""0"" cellspacing=""0"" cellpadding=""3"">" & vbCrLf
If strWhere <> "" Then
Set tRs = Execute("Select top " & topNum & " ID,Title,SmallImg,Excerpt,RedirectUrl From Mesky_Cms_Resource where " & strWhere & " and isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
Else
Set tRs = Execute("Select top " & topNum & " ID,Title,SmallImg,Excerpt,RedirectUrl From Mesky_Cms_Resource where isAuditing=1 and SmallImg<>'' order by " & strOrder & "")
End If
If tRs.EOF And tRs.BOF Then
s = s & " <tr>" & vbCrLf
s = s & " <td>Sorry!没有查询到任何记录。</td>" & vbCrLf
s = s & " </tr>" & vbCrLf
Else
If isWH = 1 Then s = s & " </tr>" & vbCrLf
Do While Not tRs.EOF
If isWH = 2 Then s = s & " <tr>" & vbCrLf
s = s & " <td><img src=""" & sPath & tRs(2) & """ border=0 width=""" & intWidth & """ height=""" & intHeight & """ align=""left"">"
If tRs(4) <> "" then
s = s & "<a href=""" & tRs(4) & """>" & cutStr(tRs(1), Int(cutNum1)) & "</a>"
Else
s = s & "<a href=""" & sPath & Replace(Setting(101), "{$id}", tRs(0)& "_1") & """>" & cutStr(tRs(1), Int(cutNum1)) & "</a>"
End If
If Int(cutNum2) > 0 then s = s & "<br>"&cutStr(tRs(3),Int(cutNum2))
s = s & "</td>" & vbCrLf
If isWH = 2 Then s = s & " </tr>" & vbCrLf
tRs.MoveNext
Loop
End If
Set tRs = Nothing
If isWH = 1 Then s = s & " </tr>" & vbCrLf
s = s & "</table>" & vbCrLf
showCmsResExcerptImages = s
s = Null
End Function
'//截取指定长度字符串
'//返回类型:字符串
Public Function cutStr(str, strlen)
If str="" or isnull(str) then Exit Function
Dim l, t, c, i
l = Len(str)
t = 0
For i = 1 To l
c = Abs(Asc(Mid(str, i, 1)))
If c > 255 Then
t = t + 2
Else
t = t + 1
End If
If t >= strlen Then
cutStr = Left(str, i) & ".."
Exit For
Else
cutStr = str
End If
Next
cutStr = Replace(cutStr, Chr(10), "")
End Function
Public Sub SystemMsg()
Response.Write "<TABLE width=""75%"" align=""center"">" & vbCrLf
Response.Write " <TR>" & vbCrLf
Response.Write " <TD>" & vbCrLf
Response.Write "<DIV class=ContainerSection>" & vbCrLf
Response.Write " <DIV class=ContainerTopBorder>" & vbCrLf
Response.Write " <DIV class=ContainerTop></DIV>" & vbCrLf
Response.Write " </DIV>" & vbCrLf
Response.Write " <DIV class=ContainerContent> System Message:</DIV> " & vbCrLf
Response.Write " <DIV><br> <B>" & strMsg & "</B><BR><BR>" & vbCrLf
Response.Write " <DIV class=ContainerContent align=""center""><a href=""" & RefererPage & """><<返回上一页</a>" & vbCrLf
Response.Write " </DIV> " & vbCrLf
Response.Write " </DIV>" & vbCrLf
Response.Write " <DIV class=BottomWrapper>" & vbCrLf
Response.Write " <DIV class=ContainerBottomBorder>" & vbCrLf
Response.Write " <DIV class=ContainerBottom></DIV>" & vbCrLf
Response.Write " </DIV>" & vbCrLf
Response.Write " </DIV>" & vbCrLf
Response.Write "</DIV>" & vbCrLf
Response.Write " </TD>" & vbCrLf
Response.Write " </TR>" & vbCrLf
Response.Write "</TABLE>" & vbCrLf
End Sub
Public Function CopyRight()
Dim reval
reval = reval & "Powered By <a href=""http://www.mesky.net"" title=""Powered By Www.Mesky.Net"">动感下载系统(MeskyDMS)V3.0</a>"
CopyRight = reval
reval = Null
End Function
Public Function HtmlHead()
Dim reval
reval = reval & "<!--Published Date:" & Now() & " Powered by Www.Mesky.Net-->" & vbCrLf
reval = reval & "<!--" & vbCrLf
reval = reval & "┌───────────────────── MESKY─┐" & vbCrLf
reval = reval & "│动感下载系统V3.0 —— http://www.mesky.net │" & vbCrLf
reval = reval & "│ 程序购买 QQ:26934364 手机:13586085531 │" & vbCrLf
reval = reval & "└───────────────────────.NET┘" & vbCrLf
reval = reval & "-->" & vbCrLf
HtmlHead = reval
reval = Null
End Function
Public Function DMSVer()
If IsSqlDataBase = 1 Then
DMSVer = "动感下载系统(MeskyDMS) V3.0 Build 050623 SQL版"
Else
DMSVer = "动感下载系统(MeskyDMS) V3.0 Build 050623 Access版"
End If
End Function
Public Function F469e80d32(tr)
If Request.ServerVariables("SERVER_NAME")="127.0.0.1" then
F469e80d32 = "1"
Exit Function
End If
F469e80d32 = "0"
Dim tRs,tempStr, RegCode
tempStr = Request.ServerVariables("SERVER_NAME") & "C0559f8d32"
RegCode = MD5(tempStr, 16)
Set tRs = Execute("select * from Mesky_Key where RegType = " & tr)
If Not (tRs.EOF And tRs.BOF) Then
If tRs("RegCode") <> RegCode Then
F469e80d32 = "2"
ElseIf tRs("RegKey") <> MD5(RegCode & tr & "F469e80d32", 32) Then
F469e80d32 = "0"
ElseIf tRs("RegCode") = RegCode And tRs("RegKey") = MD5(RegCode & tr & "F469e80d32", 32) Then
F469e80d32 = "1"
End If
End If
Set tRs = Nothing
End Function
Public Function C0559f8d32(tr)
C0559f8d32 = 0
End Function
Public Function F469e88d32(tr)
F469e88d32 = 0
End Function
Public Function Execute(Command)
If Not IsObject(Conn) Then ConnectionDatabase
'检查权限,防止注入攻击。
'If InStr(LCase(Command),"Mesky_SiteManager")>0 And Left(ScriptName,6)<> "Mesky_SiteManager" Then
'If savelog=1 Then
'Response.Write SaveSQLLOG(Command,"")
'End If
'Command=Replace(LCase(Command),"Mesky_SiteManager","Mesky<i>"&Chr(95)&"</i>SiteManager")
'End If
If IsDeBug = 0 Then
On Error Resume Next
Set Execute = Conn.Execute(Command)
If Err Then
Err.Clear
Set Conn = Nothing
If savelog = 1 Then
Response.Write SaveSQLLOG(Command, "查询数据的时候发现错误,请检查您的查询代码是否正确。<br>基于安全的理由,只显示本信息,要查看详细的错误信息,请修改您的程序文件conn.asp。把""Const IsDeBug = 0""改为:""Const IsDeBug = 1""")
Else
Response.Write "查询数据的时候发现错误,请检查您的查询代码是否正确。"
End If
Response.End
End If
Else
'Response.Write Command & "<br>"
Set Execute = Conn.Execute(Command)
End If
SqlQueryNum = SqlQueryNum + 1
End Function
'---------------------------------------------------------------------
'时间格式化
'参数:时间,格式模板
'返回:格式化后的字符串
'备注:格式化关键词详解:
' "{Y}" : 4位年
' "{y}" : 2位年
' "{M}" : 不补位的月
' "{m}" : 补位的月,如03,01
' "{D}" : 不补位的日
' "{d}" : 补位的日
' "{H}" : 不补位的小时
' "{h}" : 补位的小时
' "{MI}": 不补位的分钟
' "{mi}": 补位的分钟
' "{S}" : 不补位的秒
' "{s}" : 补位的秒
'---------------------------------------------------------------------
Public Function FormatMyDate(myDate, Template)
If Not IsDate(myDate) Or Template = "" Then
FormatMyDate = ""
Exit Function
End If
Dim mYear, mMonth, mDay, mHour, mMin, mSec
mYear = Year(myDate)
mMonth = Month(myDate)
mDay = Day(myDate)
mHour = Hour(myDate)
mMin = Minute(myDate)
mSec = Second(myDate)
FormatMyDate = Template
FormatMyDate = Replace(FormatMyDate, "{Y}", Year(myDate))
FormatMyDate = Replace(FormatMyDate, "{y}", Right(Year(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{M}", Month(myDate))
FormatMyDate = Replace(FormatMyDate, "{m}", Right("00" & Month(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{D}", Day(myDate))
FormatMyDate = Replace(FormatMyDate, "{d}", Right("00" & Day(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{H}", Hour(myDate))
FormatMyDate = Replace(FormatMyDate, "{h}", Right("00" & Hour(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{MI}", Minute(myDate))
FormatMyDate = Replace(FormatMyDate, "{mi}", Right("00" & Minute(myDate), 2))
FormatMyDate = Replace(FormatMyDate, "{S}", Second(myDate))
FormatMyDate = Replace(FormatMyDate, "{s}", Right("00" & Second(myDate), 2))
If FormatDateTime(myDate, 1) = FormatDateTime(Date, 1) Then
FormatMyDate = "<font color=red>" & FormatMyDate & "</font>"
End If
'Template = Null
End Function
Rem 判断发言是否来自外部
Public Function ChkPost()
Dim server_v1, server_v2
ChkPost = 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
ChkPost = False
Else
ChkPost = True
End If
End Function
'过滤SQL非法字符
Public Function checkStr(str)
If IsNull(str) Then
checkStr = ""
Exit Function
End If
str = Replace(str, Chr(0), "")
checkStr = Replace(str, "'", "''")
End Function
'显示验证码
Public Function GetCode()
Dim test
On Error Resume Next
'Set test = Server.CreateObject("Adodb.Stream")
'Set test = Nothing
If Err Then
Dim zNum
Randomize Timer
zNum = CInt(8999 * Rnd + 1000)
Session("GetCode") = zNum
GetCode = "<input type=""text"" name=""codestr"" maxlength=""4"" size=""4""> " & Session("GetCode")
Else
GetCode = "<input type=""text"" name=""codestr"" maxlength=""4"" size=""4""> <img src=""getcode.asp"">"
End If
End Function
'检查验证码是否正确
Public Function CodeIsTrue()
Dim CodeStr
CodeStr = Trim(Request("CodeStr"))
If CStr(Session("GetCode")) = CStr(CodeStr) And CodeStr <> "" Then
CodeIsTrue = True
Session("GetCode") = Empty
Else
CodeIsTrue = False
Session("GetCode") = Empty
End If
End Function
'系统分配随机密码
Public Function Createpass()
Dim Ran, i, LengthNum
LengthNum = 16
Createpass = ""
For i = 1 To LengthNum
Randomize
Ran = CInt(Rnd * 2)
Randomize
If Ran = 0 Then
Ran = CInt(Rnd * 25) + 97
Createpass = Createpass & UCase(Chr(Ran))
ElseIf Ran = 1 Then
Ran = CInt(Rnd * 9)
Createpass = Createpass & Ran
ElseIf Ran = 2 Then
Ran = CInt(Rnd * 25) + 97
Createpass = Createpass & Chr(Ran)
End If
Next
End Function
'//从Html标签中取出文本内容
Public Function GetTextFromHtml(strHtml)
strHtml = Replace(Replace(Replace(Replace(strHtml, "<br>", vbCrLf), "<BR>", vbCrLf), "</p>", vbCrLf & vbCrLf), "</P>", vbCrLf & vbCrLf)
Dim strPatrn
strPatrn = "<.*?>"
Dim regEx
Set regEx = New RegExp
regEx.Pattern = strPatrn
regEx.IgnoreCase = True
regEx.Global = True
GetTextFromHtml = regEx.Replace(strHtml, "")
Set regEx = Nothing
End Function
'//检测Email
'//返回:True/False
Public Function CheckEmail(strng)
CheckEmail = False
Dim regEx, Match
Set regEx = New RegExp
regEx.Pattern = "^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$"
regEx.IgnoreCase = True
Set Match = regEx.Execute(strng)
If Match.Count Then CheckEmail = True
Set Match = Nothing
Set regEx = Nothing
End Function
'//字符串是否在[0-9]&[a-z]及下划线中(不区分大小写)
'//返回:True/False
Public Function IsChar26AndInt(str)
IsChar26AndInt = True
Dim regEx, Match
Set regEx = New RegExp
regEx.Pattern = "[\W]{1,}?"
regEx.IgnoreCase = True
Set Match = regEx.Execute(str)
If Match.Count >= 1 Then
IsChar26AndInt = False
End If
Set Match = Nothing
Set regEx = Nothing
End Function
'//字符串是否在[a-z]中(不区分大小写)
'//返回:True/False
Public Function IsChar26(str)
IsChar26 = True
Dim regEx, Match
Set regEx = New RegExp
regEx.Pattern = "[^a-zA-Z]{1,}?"
regEx.IgnoreCase = True
Set Match = regEx.Execute(str)
If Match.Count >= 1 Then
IsChar26 = False
End If
Set Match = Nothing
Set regEx = Nothing
End Function
'//字符串是否在[0-9]中(不区分大小写)
Public Function IsIntChar(str)
IsIntChar = True
Dim regEx, Match
Set regEx = New RegExp
regEx.Pattern = "\D{1,}?"
regEx.IgnoreCase = True
Set Match = regEx.Execute(str)
If Match.Count >= 1 Then
IsIntChar = False
End If
Set Match = Nothing
Set regEx = Nothing
End Function
'//Html字符串转Js字符串
Public Function HTMLToJS(strHtml)
If Trim(strHtml) = "" Then
HTMLToJS = ""
Exit Function
End If
strHtml = Replace(strHtml, "\", "\\")
strHtml = Replace(strHtml, """", "\""")
strHtml = Replace(strHtml, vbCrLf, "")
HTMLToJS = strHtml
End Function
'//转换Html关键标签为Html特殊字符串
Public Function HTMLEncode(str)
If Not IsNull(str) Then
str = Replace(str, Chr(13), "")
str = Replace(str, Chr(10) & Chr(10), "<P></P>")
str = Replace(str, Chr(10), "<BR>")
str = Replace(str, ">", ">")
str = Replace(str, "<", "<")
str = Replace(str, "&", "&")
str = Replace(str, " ", " ")
str = Replace(str, """", """)
HTMLEncode = str
str = Null
End If
End Function
Public Function HTMLEncode1(str)
If Not IsNull(str) Then
str = Replace(str, Chr(32) & Chr(32) & Chr(32), " ")
str = Replace(str, Chr(13), "")
str = Replace(str, Chr(10) & Chr(10), "<br>")
str = Replace(str, Chr(10), "<br>")
HTMLEncode1 = str
str = Null
End If
End Function
Function HTMLToData(str)
If IsNull(str) Then
HTMLToData = ""
Exit Function
End If
str = Replace(str, "&", "&")
str = Replace(str, Chr(13), "
") '回车符
str = Replace(str, Chr(10), "
") '换行符
str = Replace(str, Chr(9), "	") '制表符
str = Replace(str, "'", "'") '单引号
str = Replace(str, """", """) '双引号
str = Replace(str, "<", "<")
str = Replace(str, ">", ">")
HTMLToData = str
str = Null
End Function
'//转换Html关键标签为Html特殊字符串(不转换硬回车及软回车符)
Public Function HTMLEncode2(str)
If Not IsNull(str) Then
str = Replace(str, ">", ">")
str = Replace(str, "<", "<")
'str = replace(str, "&", "&")
'str = replace(str, " ", " ")
'str = replace(str, """", """)
HTMLEncode2 = str
str = Null
End If
End Function
'//函数:字符串替换
'//参数:正则表达式,被替换字符串,替换字符串
Public Function ReplaceTest(patrn, mStr, replStr)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
ReplaceTest = regEx.Replace(mStr, replStr)
Set regEx = Nothing
End Function
'//函数:字符串查找
'//参数:正则表达式,被替换字符串,替换字符串
'//返回:Bool(True:找到)
Public Function FindText(patrn, mStr)
Dim regEx
Set regEx = New RegExp
regEx.Pattern = patrn
regEx.IgnoreCase = True
regEx.Global = True
FindText = regEx.test(mStr)
Set regEx = Nothing
End Function
'//检测是否含有禁止字符串
'//参数:被检测字符串,禁止字符列表(以,号隔开)
'//返回:True(含有违禁字符)/False
'//例:myCharClass.BadWord("你他妈的王八蛋,Fuck You","fuck you,王八蛋,you are pig")
Public Function BadWord(str, BadWordList)
BadWord = False
Dim arrBadWord
arrBadWord = Split(BadWordList, ",", -1, 1)
Dim regEx
Set regEx = New RegExp
regEx.IgnoreCase = True '不区分大小写
regEx.Global = True
Dim Match
Dim i
For i = 0 To UBound(arrBadWord)
Response.Write arrBadWord(i) & "<br>"
If arrBadWord(i) <> "" Then
regEx.Pattern = arrBadWord(i)
Set Match = regEx.Execute(str)
If Match.Count Then
BadWord = True
Exit For
End If
End If
Next
End Function
'关键字着色
Public Function KeywordColor(str, Keyword)
KeywordColor = ReplaceTest(Keyword, str, "<font color=red>" & Keyword & "</font>")
End Function
'获取字符中首字字符
'返回:A-Z ;123 ; ###
Public Function GetSpellChar(str)
Dim tmp
GetSpellChar = "@"
tmp = 65536 + Asc(str)
If (tmp >= 45217 And tmp <= 45252) Or (tmp = 65601) Or (tmp = 65633) Or (tmp = 37083) Then
GetSpellChar = "A1"
ElseIf (tmp >= 45253 And tmp <= 45760) Or (tmp = 65602) Or (tmp = 65634) Or (tmp = 39658) Then
GetSpellChar = "B1"
ElseIf (tmp >= 45761 And tmp <= 46317) Or (tmp = 65603) Or (tmp = 65635) Or (tmp = 33405) Then
GetSpellChar = "C1"
ElseIf (tmp >= 46318 And tmp <= 46930) Or (tmp = 61884) Or (tmp = 63468) Or (tmp = 65604) Or (tmp >= 36820 And tmp <= 38524) Or (tmp = 65636) Then
GetSpellChar = "D1"
ElseIf (tmp >= 46931 And tmp <= 47009) Or (tmp >= 46827 And tmp <= 46842) Or (tmp = 65605) Or (tmp = 65637) Or (tmp = 61513) Then '46827 46833 46842
GetSpellChar = "E1"
ElseIf (tmp >= 47010 And tmp <= 47296) Or (tmp = 65606) Or (tmp = 65638) Or (tmp = 61320) Or (tmp = 63568) Or (tmp = 36281) Then
GetSpellChar = "F1"
ElseIf (tmp >= 47297 And tmp <= 47613) Or (tmp = 65607) Or (tmp = 65639) Or (tmp = 35949) Or (tmp = 36089) Or (tmp = 36694) Or (tmp = 34808) Then
GetSpellChar = "G1"
ElseIf (tmp >= 47614 And tmp <= 48118) Or (tmp = 59112) Or (tmp = 40296) Or (tmp = 65608) Or (tmp = 65640) Then
GetSpellChar = "H1"
ElseIf (tmp = 65641) Or (tmp = 65609) Or (tmp = 65641) Then
GetSpellChar = "I1"
ElseIf (tmp >= 48119 And tmp <= 49061 And tmp <> 48739) Or (tmp >= 62430 And tmp <= 62430) Or (tmp = 65610) Or (tmp = 65642) Or (tmp = 39048) Then
GetSpellChar = "J1"
ElseIf (tmp >= 49062 And tmp <= 49323) Or (tmp = 65611) Or (tmp = 65643) Then
GetSpellChar = "K1"
ElseIf (tmp >= 49324 And tmp <= 49895) Or (tmp >= 58838 And tmp <= 58838) Or (tmp = 65612) Or (tmp = 65644) Or (tmp = 62418) Or (tmp = 48739) Then
GetSpellChar = "L1"
ElseIf (tmp >= 49896 And tmp <= 50370) Or (tmp = 63432) Or (tmp = 65613) Or (tmp = 65645) Then
GetSpellChar = "M1"
ElseIf (tmp >= 50371 And tmp <= 50613) Or (tmp = 65614) Or (tmp = 65646) Then
GetSpellChar = "N1"
ElseIf (tmp >= 50614 And tmp <= 50621) Or (tmp = 65615) Or (tmp = 65615) Or (tmp = 65647) Then
GetSpellChar = "O1"
ElseIf (tmp >= 50622 And tmp <= 50905) Or (tmp = 65616) Or (tmp = 65648) Then
GetSpellChar = "P1"
ElseIf (tmp >= 50906 And tmp <= 51386) Or (tmp >= 62659 And tmp <= 63172) Or (tmp = 63464) Or (tmp = 63226) Or (tmp = 65617) Or (tmp = 65649) Then
GetSpellChar = "Q1"
ElseIf (tmp >= 51387 And tmp <= 51445) Or (tmp = 65618) Or (tmp = 65650) Then
GetSpellChar = "R1"
ElseIf (tmp >= 51446 And tmp <= 52217) Or (tmp = 65619) Or (tmp = 65651) Or (tmp = 34009) Then
GetSpellChar = "S1"
ElseIf (tmp >= 52218 And tmp <= 52697) Or (tmp = 65620) Or (tmp = 65652) Then
GetSpellChar = "T1"
ElseIf (tmp = 65621) Or (tmp = 65653) Then
GetSpellChar = "U1"
ElseIf (tmp = 65622) Or (tmp = 65654) Then
GetSpellChar = "V1"
ElseIf (tmp >= 52698 And tmp <= 52979) Or (tmp = 65623) Or (tmp = 65655) Then
GetSpellChar = "W1"
ElseIf (tmp >= 52980 And tmp <= 53688) Or (tmp = 63182) Or (tmp = 65624) Or (tmp = 65656) Then
GetSpellChar = "X1"
ElseIf (tmp >= 53689 And tmp <= 54480) Or (tmp = 65625) Or (tmp = 65657) Then
GetSpellChar = "Y1"
ElseIf (tmp >= 54481 And tmp <= 62383 And tmp <> 59112 And tmp <> 58838 And tmp <> 57566) Or (tmp = 65626) Or (tmp = 65658) Or (tmp = 38395) Or (tmp = 39783) Then
GetSpellChar = "Z1"
End If
If (tmp >= 65601 And tmp <= 65658) Then GetSpellChar = UCase(Left(Trim(str), 1)) '字母
If (tmp >= 65584 And tmp <= 65593) Then GetSpellChar = "123" '数字
'Response.Write(tmp)
End Function
'---------------------------------------------------------------------
'函数:扫描元素mItem是否在元素列表strItemList中
'参数:stritemList(被扫描元素列表,各元素以逗号隔开),mItem(欲匹配元素)
'返回:True(找到)/False
'例:ItemInList("1","1,2,3") = True
'----------------------------------------------------------------------
Public Function ItemInList(strItemList, mItem)
ItemInList = False
If IsNull(strItemList) Or IsNull(mItem = "") Then Exit Function
strItemList = Replace(strItemList, " ", "")
If InStr("," & strItemList & ",", "," & mItem & ",") >= 1 Then
ItemInList = True
End If
End Function
'处理逻辑表达式的转化问题
Public Function translate(sourceStr, fieldStr)
Dim sourceList
Dim resultStr
Dim i, j
If InStr(sourceStr, " ") > 0 Then
Dim isOperator
isOperator = True
sourceList = Split(sourceStr)
'--------------------------------------------------------
' Response.Write "num:" & cstr(ubound(sourceList)) & "<br>"
For i = 0 To UBound(sourceList)
' Response.Write i
Select Case UCase(sourceList(i))
Case "AND", "&", "和", "与"
resultStr = resultStr & " and "
isOperator = True
Case "OR", "|", "或"
resultStr = resultStr & " or "
isOperator = True
Case "NOT", "!", "非", "!", "!"
resultStr = resultStr & " not "
isOperator = True
Case "(", "(", "("
resultStr = resultStr & " ( "
isOperator = True
Case ")", ")", ")"
resultStr = resultStr & " ) "
isOperator = True
Case Else
If sourceList(i) <> "" Then
If Not isOperator Then resultStr = resultStr & " and "
If InStr(sourceList(i), "%") > 0 Then
resultStr = resultStr & " " & fieldStr & " like '" & Replace(sourceList(i), "'", "''") & "' "
Else
resultStr = resultStr & " " & fieldStr & " like '%" & Replace(sourceList(i), "'", "''") & "%' "
End If
isOperator = False
End If
End Select
' Response.write resultStr+"<br>"
Next
translate = resultStr
Else '单条件
If InStr(sourceStr, "%") > 0 Then
translate = " " & fieldStr & " like '" & Replace(sourceStr, "'", "''") & "' "
Else
translate = " " & fieldStr & " like '%" & Replace(sourceStr, "'", "''") & "%' "
End If
' 前后各加一个空格,免得连sql时忘了加,而出错。
End If
End Function
Public Function CheckIDCard(sStr, ByVal dDate, ByVal nSex)
CheckIDCard = False
If IsNull(sStr) Or sStr = "" Then Exit Function
If Not IsDate(dDate) Or dDate = "" Then Exit Function
If Not IsNumeric(nSex) Or nSex = "" Then Exit Function
Dim oRE, sDate
Set oRE = New RegExp
oRE.IgnoreCase = True
oRE.Global = True
nSex = CInt(nSex Mod 2)
sDate = Year(dDate) & DblNum(Month(dDate)) & DblNum(Day(dDate))
Select Case Len(sStr)
Case 8
If DateDiff("yyyy", dDate, Date) < 19 Then Exit Function
oRE.Pattern = "^[\d]{8}$"
If Not oRE.test(sStr) Then Exit Function
If sStr <> sDate Then Exit Function
Case 15
oRE.Pattern = "^[\d]{15}$"
If Not oRE.test(sStr) Then Exit Function
If Mid(sStr, 7, 6) <> Right(sDate, 6) Then Exit Function
If CInt(Mid(sStr, 14, 1)) Mod 2 <> nSex Then Exit Function
Case 18
oRE.Pattern = "^(?:[\d]{18}|[\d]{17}X)$"
If Not oRE.test(sStr) Then Exit Function
If Mid(sStr, 7, 8) <> sDate Then Exit Function
If CInt(Mid(sStr, 17, 1)) Mod 2 <> nSex Then Exit Function
Dim nN, aW, ac, nL
nN = 0
aW = Array(7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2)
ac = Array("1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2")
For nL = 1 To 17
nN = nN + CInt(Mid(sStr, nL, 1)) * aW(nL - 1)
Next
If UCase(Right(sStr, 1)) <> ac(nN Mod 11) Then Exit Function
Case Else
Exit Function
End Select
Set oRE = Nothing
CheckIDCard = True
End Function
Private Function DblNum(nNum)
DblNum = nNum
If DblNum < 10 Then DblNum = "0" & DblNum
End Function
'记录查询错误事件
Public Function SaveSQLLOG(sCommand, message)
Dim Log_ConnStr, Log_Conn, ldb, sql, Rs
ldb = "data/SQL_LOG.mdb"
Log_ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(ldb)
Set Log_Conn = Server.CreateObject("ADODB.Connection")
Log_Conn.open Log_ConnStr
Set Rs = Server.CreateObject("adodb.recordset")
sql = "select * from Mesky_sql_log"
Rs.open sql, Log_Conn, 1, 3
Rs.AddNew
Rs("ScriptName") = ScriptName
Rs("S_Info") = Left(sCommand, 255)
Rs("ip") = UserTrueIP
Rs.Update
Rs.Close
Set Rs = Nothing
Log_Conn.Execute (sql)
Log_Conn.Close
Set Log_Conn = Nothing
SaveSQLLOG = message
End Function
'IP/来源
Public Function address(sip)
Dim aConnStr, aConn, adb
Dim str1, str2, str3, str4
Dim num
Dim country, city
Dim irs, sql
If IsNumeric(Left(sip, 2)) Then
If sip = "127.0.0.1" Then sip = "192.168.0.1"
str1 = Left(sip, InStr(sip, ".") - 1)
sip = Mid(sip, InStr(sip, ".") + 1)
str2 = Left(sip, InStr(sip, ".") - 1)
sip = Mid(sip, InStr(sip, ".") + 1)
str3 = Left(sip, InStr(sip, ".") - 1)
str4 = Mid(sip, InStr(sip, ".") + 1)
If IsNumeric(str1) = 0 Or IsNumeric(str2) = 0 Or IsNumeric(str3) = 0 Or IsNumeric(str4) = 0 Then
Else
num = CLng(str1) * 16777216 + CLng(str2) * 65536 + CLng(str3) * 256 + CLng(str4) - 1
adb = "data/ipaddress.mdb"
aConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(adb)
Set aConn = Server.CreateObject("ADODB.Connection")
aConn.open aConnStr
sql = "select top 1 country,city from Mesky_address where ip1 <=" & num & " and ip2 >=" & num & ""
Set irs = aConn.Execute(sql)
If irs.EOF And irs.BOF Then
country = "亚洲"
city = ""
Else
country = irs(0)
city = irs(1)
End If
Set irs = Nothing
Set aConn = Nothing
SqlQueryNum = SqlQueryNum + 1
End If
address = country & city
Else
address = "未知"
End If
End Function
end class
Class Cls_Browser
Public Browser, Version, platform, IsSearch
Private Sub Class_Initialize()
Dim Agent, Tmpstr
IsSearch = False
If Not IsEmpty(Session("Cls_Browser")) Then
Tmpstr = Split(Session("Cls_Browser"), "|||")
Browser = Tmpstr(0)
Version = Tmpstr(1)
platform = Tmpstr(2)
If Tmpstr(3) = "1" Then
IsSearch = True
End If
Exit Sub
End If
Browser = "unknown"
Version = "unknown"
platform = "unknown"
Agent = Request.ServerVariables("HTTP_USER_AGENT")
'Agent="Opera/7.23 (X11; Linux i686; U) [en]"
If Left(Agent, 7) = "Mozilla" Then '有此标识为浏览器
Agent = Split(Agent, ";")
If InStr(Agent(1), "MSIE") > 0 Then
Browser = "Microsoft Internet Explorer "
Version = Trim(Left(Replace(Agent(1), "MSIE", ""), 6))
ElseIf InStr(Agent(4), "Netscape") > 0 Then
Browser = "Netscape "
Tmpstr = Split(Agent(4), "/")
Version = Tmpstr(UBound(Tmpstr))
ElseIf InStr(Agent(4), "rv:") > 0 Then
Browser = "Mozilla "
Tmpstr = Split(Agent(4), ":")
Version = Tmpstr(UBound(Tmpstr))
If InStr(Version, ")") > 0 Then
Tmpstr = Split(Version, ")")
Version = Tmpstr(0)
End If
End If
If InStr(Agent(2), "NT 5.2") > 0 Then
platform = "Windows Server 2003"
ElseIf InStr(Agent(2), "Windows CE") > 0 Then
platform = "Windows CE"
ElseIf InStr(Agent(2), "NT 5.1") > 0 Then
platform = "Windows XP"
ElseIf InStr(Agent(2), "NT 4.0") > 0 Then
platform = "Windows NT"
ElseIf InStr(Agent(2), "NT 5.0") > 0 Then
platform = "Windows 2000"
ElseIf InStr(Agent(2), "NT") > 0 Then
platform = "Windows NT"
ElseIf InStr(Agent(2), "9x") > 0 Then
platform = "Windows ME"
ElseIf InStr(Agent(2), "98") > 0 Then
platform = "Windows 98"
ElseIf InStr(Agent(2), "95") > 0 Then
platform = "Windows 95"
ElseIf InStr(Agent(2), "Win32") > 0 Then
platform = "Win32"
ElseIf InStr(Agent(2), "Linux") > 0 Then
platform = "Linux"
ElseIf InStr(Agent(2), "SunOS") > 0 Then
platform = "SunOS"
ElseIf InStr(Agent(2), "Mac") > 0 Then
platform = "Mac"
ElseIf UBound(Agent) > 2 Then
If InStr(Agent(3), "NT 5.1") > 0 Then
platform = "Windows XP"
End If
If InStr(Agent(3), "Linux") > 0 Then
platform = "Linux"
End If
End If
If InStr(Agent(2), "Windows") > 0 And platform = "unknown" Then
platform = "Windows"
End If
ElseIf Left(Agent, 5) = "Opera" Then '有此标识为浏览器
Agent = Split(Agent, "/")
Browser = "Mozilla "
Tmpstr = Split(Agent(1), " ")
Version = Tmpstr(0)
If InStr(Agent(1), "NT 5.2") > 0 Then
platform = "Windows 2003"
ElseIf InStr(Agent(1), "Windows CE") > 0 Then
platform = "Windows CE"
ElseIf InStr(Agent(1), "NT 5.1") > 0 Then
platform = "Windows XP"
ElseIf InStr(Agent(1), "NT 4.0") > 0 Then
platform = "Windows NT"
ElseIf InStr(Agent(1), "NT 5.0") > 0 Then
platform = "Windows 2000"
ElseIf InStr(Agent(1), "NT") > 0 Then
platform = "Windows NT"
ElseIf InStr(Agent(1), "9x") > 0 Then
platform = "Windows ME"
ElseIf InStr(Agent(1), "98") > 0 Then
platform = "Windows 98"
ElseIf InStr(Agent(1), "95") > 0 Then
platform = "Windows 95"
ElseIf InStr(Agent(1), "Win32") > 0 Then
platform = "Win32"
ElseIf InStr(Agent(1), "Linux") > 0 Then
platform = "Linux"
ElseIf InStr(Agent(1), "SunOS") > 0 Then
platform = "SunOS"
ElseIf InStr(Agent(1), "Mac") > 0 Then
platform = "Mac"
ElseIf UBound(Agent) > 2 Then
If InStr(Agent(3), "NT 5.1") > 0 Then
platform = "Windows XP"
End If
If InStr(Agent(3), "Linux") > 0 Then
platform = "Linux"
End If
End If
Else
'识别搜索引擎
Dim botlist, i
botlist = "Google,Isaac,Webdup,SurveyBot,Baiduspider,ia_archiver,P.Arthur,FAST-WebCrawler,Java,Microsoft-ATL-Native,TurnitinBot,WebGather,Sleipnir"
botlist = Split(botlist, ",")
For i = 0 To UBound(botlist)
If InStr(Agent, botlist(i)) > 0 Then
platform = botlist(i) & "搜索器"
IsSearch = True
Exit For
End If
Next
End If
If Version <> "unknown" Then
Dim Tmpstr1
Tmpstr1 = Trim(Replace(Version, ".", ""))
If Not IsNumeric(Tmpstr1) Then
Version = "unknown"
End If
End If
If IsSearch Then
Browser = ""
Version = ""
Session("Cls_Browser") = Browser & "|||" & Version & "|||" & platform & "|||1"
Else
Session("Cls_Browser") = Browser & "|||" & Version & "|||" & platform & "|||0"
End If
Exit Sub '官方站屏蔽此句 客户的去掉屏蔽
'记录未知Agent
If Browser = "unknown" Or Version = "unknown" Or platform = "unknown" Then
Agent = Dvbbs.checkStr(Request.ServerVariables("HTTP_USER_AGENT"))
Dim Log_ConnStr, Log_Conn, Log_db, Rs
Log_db = "data/SQL_LOG.mdb"
Log_ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(Log_db)
Set Log_Conn = Server.CreateObject("ADODB.Connection")
Log_Conn.open Log_ConnStr
Set Rs = Log_Conn.Execute("select * from [Agent] where UserAgent='" & Agent & "'")
If Rs.EOF Then
Set Rs = Nothing
Log_Conn.Execute ("insert into [Agent](UserAgent)Values('" & Agent & "')")
End If
Log_Conn.Close
Set Log_Conn = Nothing
End If
End Sub
End Class %>