<%@ Language=VBScript CODEPAGE=936%> <% OptionExplicit %> <% ' ============================================ ' 常用全局变量 ' ============================================ ' 数据库对象 Dim oConn, oRs, sSql ' ============================================ ' 初始数据处理 ' ============================================ ' 执行每天只需处理一次的事件 'Call BrandNewDay() ' 初始化数据库连接 'Call DBConnBegin() ' ******************************************** ' 以下为初始函数 ' ******************************************** ' ============================================ ' 执行每天只需处理一次的事件 ' ============================================ Sub BrandNewDay() Dim sDate, y, m, d, w Dim sDateChinese sDate =Date() If Application("date_today") = sDate ThenExitSub y =CStr(Year(sDate)) m =CStr(Month(sDate)) IfLen(m) =1Then m ="0"& m d =CStr(Day(sDate)) IfLen(d) =1Then d ="0"& d w =WeekdayName(Weekday(sDate)) sDateChinese = y &"年"& m &"月"& d &"日 "& w Application.Lock Application("date_today") = sDate Application("date_chinese") = sDateChinese '今天的中文样式 Application.Unlock End Sub ' ******************************************** ' 以下为数据库相关函数 ' ******************************************** ' ============================================ ' 初始化数据库连接对象 ' 使用原则:最迟调用,最早释放 ' ============================================ Sub DBConnBegin() ' 如果数据库对象已打开,不要再打开 IfIsObject(oConn) =TrueThenExitSub ' 你可以不需要打开数据库连接对象而直接打开记录集对象,但如果你需要打开多个记录集对象的话,效率是很低的。 ' 如果你不创建一个数据库连接对象,ADO会在每个记录集打开时自动创建一个新的数据库连接对象,就算你用的是相同的SQL语句。 Set oConn = Server.CreateObject("ADODB.Connection") OnErrorResumeNext ' Access数据库 oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source="& Server.MapPath("db/ewebeditor____yang.md_b") ' SQL Server 2000数据库 'oConn.Open "Provider=SQLOLEDB.1;Server=localhost;UID=ewebeditor;PWD=123456;Database=ewebeditor" If Err.Number >0Then ' 显示错误信息,并且发送邮件通知管理员 'Call DBConnError(Err) ' 完全地退出正在运行的脚本 Response.End EndIf ' 创建一个记录集 Set oRs = Server.CreateObject( "ADODB.Recordset" ) End Sub ' ============================================ ' 释放数据库连接对象 ' ============================================ Sub DBConnEnd() OnErrorResumeNext oRs.Close Set oRs =Nothing oConn.Close Set oConn =Nothing End Sub ' ******************************************** ' 以下为常用函数 ' ******************************************** ' ============================================ ' 错误返回处理 ' ============================================ Sub Go_Error(str) Call DBConnEnd() Response.Write "<script language=javascript>alert('"& str &" 系统将自动返回前一页面...');history.back();</script>" Response.End End Sub ' ============================================ ' 格式化时间(显示) ' 参数:n_Flag ' 1:"yyyy-mm-dd hh:mm:ss" ' 2:"yyyy-mm-dd" ' 3:"hh:mm:ss" ' 4:"yyyy年mm月dd日" ' 5:"yyyymmdd" ' ============================================ Function Format_Time(s_Time, n_Flag) Dim y, m, d, h, mi, s Format_Time ="" IfIsDate(s_Time) =FalseThenExitFunction y =cstr(year(s_Time)) m =cstr(month(s_Time)) Iflen(m) =1Then m ="0"& m d =cstr(day(s_Time)) Iflen(d) =1Then d ="0"& d h =cstr(hour(s_Time)) Iflen(h) =1Then h ="0"& h mi =cstr(minute(s_Time)) Iflen(mi) =1Then mi ="0"& mi s =cstr(second(s_Time)) Iflen(s) =1Then s ="0"& s SelectCase n_Flag Case1 ' yyyy-mm-dd hh:mm:ss Format_Time = y &"-"& m &"-"& d &""& h &":"& mi &":"& s Case2 ' yyyy-mm-dd Format_Time = y &"-"& m &"-"& d Case3 ' hh:mm:ss Format_Time = h &":"& mi &":"& s Case4 ' yyyy年mm月dd日 Format_Time = y &"年"& m &"月"& d &"日" Case5 ' yyyymmdd Format_Time = y & m & d EndSelect End Function ' ============================================ ' 把字符串进行HTML解码,替换server.htmlencode ' 去除Html格式,用于显示输出 ' ============================================ Function outHTML(str) Dim sTemp sTemp = str outHTML ="" IfIsNull(sTemp) =TrueThen ExitFunction EndIf sTemp =Replace(sTemp, "&", "&") sTemp =Replace(sTemp, "<", "<") sTemp =Replace(sTemp, ">", ">") sTemp =Replace(sTemp, Chr(34), """) sTemp =Replace(sTemp, Chr(10), "<br>") outHTML = sTemp End Function ' ============================================ ' 去除Html格式,用于从数据库中取出值填入输入框时 ' 注意:value="?"这边一定要用双引号 ' ============================================ Function inHTML(str) Dim sTemp sTemp = str inHTML ="" IfIsNull(sTemp) =TrueThen ExitFunction EndIf sTemp =Replace(sTemp, "&", "&") sTemp =Replace(sTemp, "<", "<") sTemp =Replace(sTemp, ">", ">") sTemp =Replace(sTemp, Chr(34), """) inHTML = sTemp End Function ' ============================================ ' 检测上页是否从本站提交 ' 返回:True,False ' ============================================ Function IsSelfRefer() Dim sHttp_Referer, sServer_Name sHttp_Referer =CStr(Request.ServerVariables("HTTP_REFERER")) sServer_Name =CStr(Request.ServerVariables("SERVER_NAME")) IfMid(sHttp_Referer, 8, Len(sServer_Name)) = sServer_Name Then IsSelfRefer =True Else IsSelfRefer =False EndIf End Function ' ============================================ ' 得到安全字符串,在查询中使用 ' ============================================ Function Get_SafeStr(str) Get_SafeStr =Replace(Replace(Replace(Trim(str), "'", ""), Chr(34), ""), ";", "") End Function ' ============================================ ' 取实际字符长度 ' ============================================ Function Get_TrueLen(str) Dim l, t, c, i l =Len(str) t = l For i =1To l c =Asc(Mid(str, i, 1)) If c <0Then c = c +65536 If c >255Then t = t +1 Next Get_TrueLen = t End Function ' ============================================ ' 判断是否安全字符串,在注册登录等特殊字段中使用 ' ============================================ Function IsSafeStr(str) Dim s_BadStr, n, i s_BadStr ="' &<>?%,;:()`~!@#$^*{}[]|+-="&Chr(34) &Chr(9) &Chr(32) n =Len(s_BadStr) IsSafeStr =True For i =1To n IfInstr(str, Mid(s_BadStr, i, 1)) >0Then IsSafeStr =False ExitFunction EndIf Next End Function %>