📄 ixs_clsmain.asp
字号:
<%
Class iXuEr_CMSCore
' 私有交换变量
Private p_ErrCode, p_SucCode, p_User_Agent
Public SkinID, CssID, BaseUrl, ScriptName, p_Sql_Use, AllowHTML, DeCode, TimeZone, PageMaster, CanNotMenu, HaveHidden
Public ReloadTime, CacheName, LocalCacheName, CacheData, CachePowered, SystemSN, ReqMode, ReqNumLen, ReqStrLen
' 系统缓存变量 系统模块ID,系统模块名称,系统分类信息数组,当前分类ID
Public SysID, ObjClassType, ObjClass, ObjClassID
Public Main_Setting, Page_Setting, UpLoad_Setting, Article_Setting
Public Counter
Public UserID, UserInfo, UserSetting, UserGroup, MasterID, MasterInfo, MasterSetting, UserBrowser
' ============================================
' 类模块版本
' ============================================
Public Property Get Version()
Select Case CharSet
Case "zh-tw" ' 繁体中文 zh-tw
Version = "图片上传管理"
Case "en-us" ' 英文 en-us
Version = "图片上传管理 "
Case Else ' 默认:简体中文 zh-cn
Version = "图片上传管理"
End Select
End Property
' ============================================
' 类模块初始化
' ============================================
Private Sub Class_Initialize()
If Not Response.IsClientConnected Then Response.End
CanNotMenu = Split(Request.ServerVariables("PATH_INFO"), "/") : ScriptName = LCase(CanNotMenu(UBound(CanNotMenu))) ' 获取页面名称
SysID = 1 : ObjClassID = 0 : AllowHTML = False : PageMaster = False : CanNotMenu = False : UserID = 0 : MasterID = 0 : p_ErrCode = "" : p_Sql_Use = 0 : HaveHidden = 0 : ReqMode = 0
' 网站的访问地址,自动获取,如果在子文件夹,则会自动检测
BaseUrl = "http://" & LCase(Replace(Request.ServerVariables("SERVER_NAME") & Request.ServerVariables("URL"), Split(Request.ServerVariables("SCRIPT_NAME"), "/")(UBound(Split(Request.ServerVariables("SCRIPT_NAME"), "/"))), ""))
' 缓存生存周期(分钟),缓存主名称(同一空间放置多个系统请不要设置相同的主名称),缓存签名,Cookies主名称
ReloadTime = 2880 : CacheName = "iXuErCMS" : CachePowered= "Powered By iXuEr Cache Server" : SystemSN = ""
If SystemSN = "" Then SystemSN = Replace(Replace(CacheName, "-", ""), "_", "")
If Session(CacheName & "-UserID") <> "" And (Not IsNull(Session(CacheName & "-UserID"))) Then UserID = CLng(Session(CacheName & "-UserID"))
If UserID > 0 Then If Session(CacheName & "-MasterID") <> "" And (Not IsNull(Session(CacheName & "-MasterID"))) Then MasterID = CLng(Session(CacheName & "-MasterID"))
Call LoadSetup("Core") ' 加载系统基本配置缓存
BaseUrl = Replace(LCase(BaseUrl), LCase(Main_Setting(26)), "") ' 修复路径部分
SkinID = CLng(Main_Setting(1)) : CssID = CLng(Main_Setting(2)) : TimeZone = Main_Setting(18) : Call SetTimeZone()
If InStr(ScriptName, "aboutus") > 0 Or InStr(ScriptName, "help") > 0 Or InStr(ScriptName, "showerror") > 0 Or InStr(ScriptName, "ixs_getcode") > 0 Or InStr(ScriptName, "userlogin") > 0 Or InStr(ScriptName, "admin_") > 0 Then PageMaster = True
If InStr(ScriptName, "usermessage") > 0 Then CanNotMenu = True
ReqStrLen = Main_Setting(23) : ReqNumLen = Main_Setting(24) : DeCode = Main_Setting(25)
If Not Main_Setting(3) = 1 And Not PageMaster Then Call SystemError(7, 4) ' 系统关闭部分
End Sub
' ============================================
' 检测网站常规信息并设置缓存
' ============================================
Public Sub LoadSetup(p_Type)
Dim Temp, i
Name = "Settings_" & p_Type
Call DelCache("Settings_" & p_Type, 0)
If ObjIsEmpty Then
Call DelCache("Settings_" & p_Type, 0)
Dim System_Setting(100)
Select Case p_Type
Case "Core"
System_Setting(0) = "核心管理"
System_Setting(1) = 0 ' 模板ID
System_Setting(2) = 0 ' 样式ID
System_Setting(3) = 1 ' 系统开关
System_Setting(4) = "zh-cn" ' 系统语言
System_Setting(5) = "iXs_Editor_001|iXs_Editor_002|iXs_Editor_003"
System_Setting(6) = "讯网"
System_Setting(7) = "http://www.sun116.net"
System_Setting(8) = "Guidy"
System_Setting(9) = "2005-09-13 00:00:00"
System_Setting(10) = "Index.asp"
System_Setting(11) = "讯网上传管理系统"
System_Setting(12) = "web@sun116.net"
System_Setting(13) = "Images/LOGO_iXs.gif"
System_Setting(14) = "Images/slogo_2.gif"
System_Setting(15) = "讯网通用上传管理系统"
System_Setting(16) = "讯网专注于网站应用程序的研究与开发,开发宗旨是:简单、实用、好用!"
System_Setting(17) = "<strong>讯网</strong> <strong>Copyright © 2005 - 2008, All Rights Reserved</strong>"
System_Setting(18) = 8 ' 默认系统时区
System_Setting(19) = "无"
System_Setting(20) = 5 ' 验证码字符个数
System_Setting(21) = 16 ' MD5
System_Setting(22) = 2 ' SHA256
System_Setting(23) = 1024 ' 默认允许提交字符串的长度
System_Setting(24) = 8 ' 默认允许提交数字的位数
System_Setting(25) = "html|head|title|object|script|frame|data|iframe|meta|link|applet" ' 默认字符串中要过滤的HTML标签
System_Setting(26) = "Admin/"
System_Setting(27) = "1|1|2|20|6|20|0|1|0|0|30" ' 注册信息参数
System_Setting(68) = "星期日,星期一,星期二,星期三,星期四,星期五,星期六" ' 星期名称设置
Case Else
End Select
Value = System_Setting
End If
Select Case p_Type
Case "Core"
Main_Setting = Value
Case Else
Page_Setting = Value
End Select
End Sub
' ============================================
' 函数名称:Execute
' 函数功能:使用数据库连接对象执行SQL命令
' 其他说明:该函数可以容错
' 传入参数:
' 1、Command:需要执行的命令
' 返回结果:返回执行的数据库连接对象
' ============================================
Public Function Execute(Command)
If Not IsObject(Conn) Then ConnectionDatabase(0)
On Error Resume Next
'Response.Write("执行查询:" & Command & "<hr />")
Set Execute = Conn.Execute(Command)
If Err Then
Dim ErrMsg
If IsDeBug = 0 Then
Call SystemError(8, 1)
Else
Response.Write("查询语句为:" & Command & "<br />错误信息为:" & Err.Description & "<br />")
End If
Err.Clear
Set Execute = Nothing
End If
p_Sql_Use = p_Sql_Use + 1
End Function
' ============================================
' 获取 Recordset 对象
' ============================================
Public Function GetRs(Command, Num1, Num2)
On Error Resume Next
If Not IsObject(Conn) Then ConnectionDatabase(0)
Set GetRs = Server.CreateObject(ServerObject_002)
'Response.Write("执行查询:" & Command & "<br />")
GetRs.Open Command, Conn, Num1, Num2
If Err Then
Dim ErrMsg
If IsDeBug = 0 Then
Call SystemError(9, 1)
Else
Response.Write("查询语句为:" & Command & "<br />错误信息为:" & Err.Description & "<br />")
End If
Err.Clear
Call SystemError(ErrMsg)
End If
p_Sql_Use = p_Sql_Use + 1
End Function
' ============================================
' 函数名称:ReqNum
' 函数功能:检测获取的字符是否为数字
' 其他说明:如果要获取的变量不存在就使用默认值
' 传入参数:
' 1、StrName:对象名称
' 2、DefaultValue:默认值
' 返回结果:数字
' ============================================
Public Function ReqNum(StrName, DefaultValue)
Select Case ReqMode
Case 1 ' Form
ReqNum = Request.Form(StrName)
Case 2 ' Cookies
ReqNum = Request.Cookies(SystemSN)(StrName)
Case Else ' QueryString
ReqNum = Request.QueryString(StrName)
End Select
If ReqNum <> "" And Not IsNull(ReqNum) Then
If Not IsNumeric(ReqNum) Then
Call SystemError(3, 3)
Else
ReqNum = CLng(ReqNum)
End If
Else
ReqNum = DefaultValue
End If
If Len(ReqNum) > ReqNumLen Then Call SystemError(4, 3)
ReqNumLen = Main_Setting(24)
End Function
' ============================================
' 函数名称:ReqStr
' 函数功能:从客户端获取字符串变量
' 其他说明:如果要获取的变量不存在就使用默认值
' 传入参数:
' 1、StrName:对象名称
' 2、DefaultValue:默认值
' 返回结果:字符串
' ============================================
Public Function ReqStr(StrName, DefaultValue)
Dim Str, i
Select Case ReqMode
Case 1 ' Form 循环读取数据,以兼容大数据提交(注:需要在客户端使用脚本对数据进行分解)
For i = 1 To Request(StrName).Count
Str = Str & Request.Form(StrName)(i)
Next
Case 2 ' Cookies
Str = Request.Cookies(SystemSN)(StrName)
Case Else ' QueryString
Str = Request.QueryString(StrName)
End Select
Str = Trim(StrName)
' 过滤非安全字符
Str = Replace(Trim(Request(StrName)), Chr(0), "")
Str = Replace(Str, "'", "''")
' 替换空数据
If Str = "" Or IsNull(Str) Then
Str = DefaultValue
Else
' 过滤HTML
If AllowHTML = True And DeCode <> "" Then Str = ReFilter("</?(" & DeCode & ")[^>]*>", Str, 1, "")
AllowHTML = False
End If
' 限制输入的字符长度
If Len(Str) > ReqStrLen And ReqStrLen <> 0 Then Call SystemError(5, 3)
ReqStrLen = Main_Setting(23)
ReqStr = Str
End Function
' ============================================
' 获取随机验证码
' ============================================
Public Function GetCode(p_Path)
If p_Path = "" Or IsNull(p_Path) Then p_Path = MyRootPath
GetCode = "<img id=""GetCode"" src=""" & p_Path & "iXs_GetCode.asp"" style=""cursor: pointer;"" onclick=""ReLoadGetCode();"" alt=""[iXuEr Studio]"" title="""" />"
End Function
'=========================================================
' 函数名称:GetRndCode
' 函数功能:生成指定长度的随机字符串
' 其他说明:iXuEr Studio 挑战随机字符串
' 传入参数:
' 1、p_Len:要生成的字符串长度
' 返回结果:长度等于 p_Len 的随机字符串
'=========================================================
Public Function GetRndCode(p_Len)
If Not IsNumeric(p_Len) Then p_Len = 16 ' 默认随机数长度
If p_Len <= 0 Then p_Len = 16
Dim S1, S2, S3, S4, Ln
Dim Seed, SeedAry
Dim Seed_Str, Seed_Str1, Seed_Str2, Seed_Str3, Seed_Str4, Seed_Strn
Dim TempStr
Dim i, m
S1 = Main_Setting(32) ' 随机字符串是否包含大写字母 1:是,0:否;下同
S2 = Main_Setting(33) ' 随机字符串是否包含小写字母
S3 = Main_Setting(34) ' 随机字符串是否包含数字
S4 = Main_Setting(35) ' 随机字符串是否包含特殊字符
Ln = Main_Setting(36) ' 随机字符串是否包含自定义字符
Seed_Str1 = "A B C D E F G H I J K L M N O P Q R S T U V W X Y Z"
Seed_Str2 = "a b c d e f g h i j k l m n o p q r s t u v w x y z"
Seed_Str3 = "0 1 2 3 4 5 6 7 8 9"
Seed_Str4 = "! "" # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~"
Seed_Strn = Main_Setting(37) ' 随机字符串的自定义字符集
If S1 <> 1 And S2 <> 1 And S3 <> 1 And S4 <> 1 And Ln <> 1 Then S1 = 1 : S2 = 1 : S3 = 1
Seed = ""
If S1 = 1 Then Seed = Seed & Seed_Str1
If S2 = 1 Then Seed = Seed & " " & Seed_Str2
If S3 = 1 Then Seed = Seed & " " & Seed_Str3
If S4 = 1 Then Seed = Seed & " " & Seed_Str4
If Ln = 1 Then Seed = Seed & " " & Seed_Strn
SeedAry = Split(Trim(Seed)," ")
m = UBound(SeedAry)
TempStr = ""
Do While Len(TempStr) < Abs(p_Len)
Randomize Timer() ' 设定随机种子
TempStr = TempStr & SeedAry(m * Rnd) ' 获取随机字符
Loop
GetRndCode = TempStr
End Function
' ============================================
' 获取真实的IP地址 并整形为15位
' ============================================
Public Property Get ReqIP()
Dim Temp
ReqIP = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
If ReqIP = "" Or IsNull(ReqIP) Then ReqIP = Request.ServerVariables("REMOTE_ADDR")
If InStr(ReqIP, ",") > 0 Then
Temp = Split(ReqIP, ",")
ReqIP = Temp(0)
End If
ReqIP = Format_Ip(ReqIP, 0)
End Property
' ============================================
' 函数名称:CheckSelfRefer
' 函数功能:检测上页是否从本站提交
' 传入参数:无
' 返回结果:True, False
' ============================================
Public Function CheckSelfRefer(p_Type)
Dim sHttp_Referer, sServer_Name
sHttp_Referer = CStr(Request.ServerVariables("HTTP_REFERER"))
sServer_Name = CStr(Request.ServerVariables("SERVER_NAME"))
If Mid(sHttp_Referer, 8, Len(sServer_Name)) = sServer_Name Then
CheckSelfRefer = True
Else
CheckSelfRefer = False
If p_Type = 1 And Not PageMaster Or sHttp_Referer = "" Then Call SystemError(2, 2)
End If
End Function
' ============================================
' 复制N个字符串Str
' ============================================
Public Function Clone(ByVal Str, n)
Dim TempStr
For i = 1 To n
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -