zoukankan      html  css  js  c++  java
  • 幾個有用的ASP Function

    <%@ Language=VBScript CODEPAGE=950%>
    <Option Explicit %>
    <%

    ' ============================================
    '
     常用全局變量
    '
     ============================================
    '
     數據庫對像
    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 Then Exit Sub

        y 
    = CStr(Year(sDate))
        m 
    = CStr(Month(sDate))
        
    If Len(m) = 1 Then m = "0" & m
        d 
    = CStr(Day(sDate))
        
    If Len(d) = 1 Then d = "0" & d
        w 
    = WeekdayName(Weekday(sDate))
        sDateChinese 
    = y & "" & m & "" & d & "日&nbsp;" & w

        Application.Lock
        Application(
    "date_today"= sDate
        Application(
    "date_chinese"= sDateChinese        '今天的中文樣式
        Application.Unlock
    End Sub



    ' ********************************************
    '
     以下為數據庫相關函數
    '
     ********************************************
    '
     ============================================
    '
     初始化數據庫連接對像
    '
     使用原則:最遲調用,最早釋放
    '
     ============================================
    Sub DBConnBegin()
        
    ' 如果數據庫對像已打開,不要再打開
        If IsObject(oConn) = True Then Exit Sub

        
    ' 你可以不需要打開數據庫連接對像而直接打開記錄集對像,但如果你需要打開多個記錄集對像的話,效率是很低的。
        ' 如果你不創建一個數據庫連接對像,ADO會在每個記錄集打開時自動創建一個新的數據庫連接對像,就算你用的是相同的SQL語句。
        Set oConn = Server.CreateObject("ADODB.Connection")

        
    On Error Resume Next
        
    ' Access數據庫
        oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("db/ewebeditor.mdb")
        
    ' SQL Server 2000數據庫
        'oConn.Open "Provider=SQLOLEDB.1;Server=localhost;UID=ewebeditor;PWD=123456;Database=ewebeditor"
        
        
    If Err.Number > 0 Then
            
    ' 顯示錯誤信息,並且發送郵件通知管理員
            'Call DBConnError(Err)
            
            
    ' 完全地退出正在運行的腳本
            Response.End
        
    End If

        
    ' 創建一個記錄集
        Set oRs = Server.CreateObject( "ADODB.Recordset" )
    End Sub

    ' ============================================
    '
     釋放數據庫連接對像
    '
     ============================================
    Sub DBConnEnd()
        
    On Error Resume Next
        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 & "\n\n系統將自動返回前一頁面');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 
    = ""
        
    If IsDate(s_Time) = False Then Exit Function
        y 
    = cstr(year(s_Time))
        m 
    = cstr(month(s_Time))
        
    If len(m) = 1 Then m = "0" & m
        d 
    = cstr(day(s_Time))
        
    If len(d) = 1 Then d = "0" & d
        h 
    = cstr(hour(s_Time))
        
    If len(h) = 1 Then h = "0" & h
        mi 
    = cstr(minute(s_Time))
        
    If len(mi) = 1 Then mi = "0" & mi
        s 
    = cstr(second(s_Time))
        
    If len(s) = 1 Then s = "0" & s
        
    Select Case n_Flag
        
    Case 1
            
    ' yyyy-mm-dd hh:mm:ss
            Format_Time = y & "-" & m & "-" & d & " " & h & ":" & mi & ":" & s
        
    Case 2
            
    ' yyyy-mm-dd
            Format_Time = y & "-" & m & "-" & d
        
    Case 3
            
    ' hh:mm:ss
            Format_Time = h & ":" & mi & ":" & s
        
    Case 4
            
    ' yyyy年mm月dd日
            Format_Time = y & "" & m & "" & d & ""
        
    Case 5
            
    ' yyyymmdd
            Format_Time = y & m & d
        
    End Select
    End Function

    ' ============================================
    '
     把字符串進行HTML解碼,替換server.htmlencode
    '
     去除Html格式,用於顯示輸出
    '
     ============================================
    Function outHTML(str)
        
    Dim sTemp
        sTemp 
    = str
        outHTML 
    = ""
        
    If IsNull(sTemp) = True Then
            
    Exit Function
        
    End If
        sTemp 
    = Replace(sTemp, "&""&amp;")
        sTemp 
    = Replace(sTemp, "<""&lt;")
        sTemp 
    = Replace(sTemp, ">""&gt;")
        sTemp 
    = Replace(sTemp, Chr(34), "&quot;")
        sTemp 
    = Replace(sTemp, Chr(10), "<br>")
        outHTML 
    = sTemp
    End Function

    ' ============================================
    '
     去除Html格式,用於從數據庫中取出值填入輸入框時
    '
     注意:value="?"這邊一定要用雙引號
    '
     ============================================
    Function inHTML(str)
        
    Dim sTemp
        sTemp 
    = str
        inHTML 
    = ""
        
    If IsNull(sTemp) = True Then
            
    Exit Function
        
    End If
        sTemp 
    = Replace(sTemp, "&""&amp;")
        sTemp 
    = Replace(sTemp, "<""&lt;")
        sTemp 
    = Replace(sTemp, ">""&gt;")
        sTemp 
    = Replace(sTemp, Chr(34), "&quot;")
        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"))
        
    If Mid(sHttp_Referer, 8Len(sServer_Name)) = sServer_Name Then
            IsSelfRefer 
    = True
        
    Else
            IsSelfRefer 
    = False
        
    End If
    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 = 1 To l
            c 
    = Asc(Mid(str, i, 1))
            
    If c < 0 Then c = c + 65536
            
    If c > 255 Then 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 = 1 To n
            
    If Instr(strMid(s_BadStr, i, 1)) > 0 Then
                IsSafeStr 
    = False
                
    Exit Function
            
    End If
        
    Next
    End Function


    %
    >

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    linux中的信号机制
    函数指针读书笔记
    const读书笔记
    动态规划----0/1背包问题
    函数指针的用法---以冒泡排序为例
    各种排序算法的实现(更新中)
    Flutter滚动型容器组件
    Flutter json转实体类(插件自动生成)
    Flutter 键盘弹出背景图片变形
    Flutter BottomNavigationBar切换页面被重置问题(保存状态)
  • 原文地址:https://www.cnblogs.com/Athrun/p/983164.html
Copyright © 2011-2022 走看看