热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

ASP的一些自定义函数整理第1/2页

书学asp,经常会用到一些函数,对于代码的重用性有所提高,执行速度也提高,希望大家多多欣赏学习
<% 
'============================================================================================================================ 
'函数列表: 
'1:    建立数据库的连接 ConnOpen(DataBaseConnectStr,DBType,Conn_object) 
'2:    断开数据库的连接 ConnClose(Conn_object) 
'3:    防止SQL注入 SafeRequest(paraName,paraType) 
'4:    格式化日期 DateFormat(dateStr,dateType) 
'5:    显示错误提示 ShowErr(errStr) 
'6:    查询字符串中特定数据 SelectStr(contentStr,patternStr,patternNum) 
'7:    过滤指定字符 Leach(contentStr,badWords) 
'8:    远程文件内容抓取 Seize(urlStr) 
'9:    数据流编码处理 BytesToBstr(body,cset) 
'10:    编码COOKIEs codeCOOKIE(contentStr) 
'11:    解码COOKIEs DecodeCOOKIE(contentStr) 
'12:    检验数据提交来源是否合法 ChkPost() 
'13:    个性化加密 MyEncrypt(StrPassword) 
'14:    禁止浏览器缓存本页 NoBuffer() 
'15:    网页格式化输入文本 HTMLEncode(fString) 
'16:    从头部截取字符串的指定长度(按字符数算) GotTopic(Str,StrLen) 
'17:    检测验证码 CheckRadomPass(RadomPass) 
'18:    生成验证码 GetCode() 
'19:    获取客户端操作系统版本 GetSystem() 
'20:    数据库事务处理 ConnManage(Conn_object) 
'21:    快速排序(递归) QuickSort(arr,Low,High) 
'22:    将数组的元素以特定字符串连起来 arr_join(arr,character) 
'23:    返回字符串以某分割符分割的数目 count_character(str,character) 
'24:    截取含有分割符的字符串中指定数目的字符串 inter_str_by_character_num(str,character,start,num) 
'25:    利用Stream下载文件 downloadFile(strFile) 
'26:    返回信息 send_back(ResultWords) 
'27:    获取错误信息 get_err() 
'28:    与SafeRequest相反 SafeResponse(content) 
'29:    保存远程图片 SaveRemoteFile(LocalFileName,RemoteFileUrl) 
'30:    ... 
dim language_arr(10) 
language_arr(0) = "数据库连接的参数设置错误!" 
language_arr(1) = "数据库连接的类型参数设置错误!" 
language_arr(2) = "数据库连接失败!" 
language_arr(3) = "非法的参数值!" 
language_arr(4) = "参数值不是有效的日期格式!" 
language_arr(5) = "操作失败!" 
language_arr(6) = "栏目有重名!" 
language_arr(7) = "栏目名称为空!" 
language_arr(8) = "栏目文件夹创建失败!" 
language_arr(9) = "您没有此权限!" 
'============================================================================================================================ 
'函数ID:1 
'函数作用:建立数据库的连接 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-15 10:28 
'修改时间: 
'传人参数: 
'    connectStr:数据库连接字符串 
'    connectType:数据库类别-数字型,0为Access,1为MS SQL 
'返回值: 
'============================================================================================================================ 
sub ConnOpen(DataBaseConnectStr,DBType,Conn_object) 
    Set Conn_object = Server.Createobject("adodb.connection") 
    if DataBaseConnectStr = "" then call ShowErr(language_arr(0)) 
    if DBType = 0 then 
        Conn_object.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DataBaseConnectStr 
    elseif DBType = 1 then 
        Conn_object.Open "Provider=SQLOLEDB.1;" & DataBaseConnectStr 
    else 
        call ShowErr(language_arr(1)) 
    end if 
    err.clear 
end sub 
'============================================================================================================================ 
'函数ID:2 
'函数作用:断开数据库的连接 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 15:10 
'修改时间: 
'传人参数: 
'返回值: 
'============================================================================================================================ 
Sub ConnClose(Conn_object) 
    Conn_object.close 
    set Conn_object = nothing 
End sub 
'============================================================================================================================ 
'函数ID:3 
'函数作用:防止SQL注入 
'作者名称:http://news.dvbbs.net/infoview/Article_2906.html 
'建立时间:2006-2-16 15:32 
'修改时间: 
'传人参数: 
'    paraName:参数名称-字符型 
'    paraType:参数类型-数字型(1表示以上参数是数字,0表示以上参数为字符)  
'返回值: 
'    过滤后的字符串 
'============================================================================================================================ 
Function SafeRequest(paraName,paraType) 
    dim paraValue 
    paraValue = Request(paraName) 
    select case paraType 
        case 0 
            paraValue = replace(paraValue,"'","[system:34]") 
            paraValue = replace(paraValue,"=","[system:61]") 
        case 1 
            if not IsNumeric(paraValue) then call ShowErr(language_arr(3)) 
        case -1 
            if not IsNumeric(paraValue) then call ShowErr(language_arr(3)) 
            if paraValue = "" then paraValue = 0 
        case else 
            if len(paraValue) > paraType then call ShowErr(language_arr(3)) 
            paraValue = replace(paraValue,"'","[system:34]") 
            paraValue = replace(paraValue,"=","[system:61]") 
    end select 
    SafeRequest = paraValue 
End function 
'============================================================================================================================ 
'函数ID:4 
'函数作用:格式化日期 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 15:45 
'修改时间: 
'传人参数: 
'    dateStr:日期字符串 
'    paraType:日期类型-数字型 
'返回值: 
'    格式化后的日期 
'============================================================================================================================ 
Function  DateFormat(dateStr,dateType) 
    Dim dateString 
    if IsDate(dateStr) = False then 
        call ShowErr(language_arr(4)) 
    end if 
    Select Case dateType 
      Case "1" 
          dateString = Year(dateStr)&"-"&Month(dateStr)&"-"&Day(dateStr) 
      Case "2" 
          dateString = Year(dateStr)&"."&Month(dateStr)&"."&Day(dateStr) 
      Case "3" 
          dateString = Year(dateStr)&"/"&Month(dateStr)&"/"&Day(dateStr) 
      Case "4" 
          dateString = Month(dateStr)&"/"&Day(dateStr)&"/"&Year(dateStr) 
      Case "5" 
          dateString = Day(dateStr)&"/"&Month(dateStr)&"/"&Year(dateStr) 
      Case "6" 
          dateString = Month(dateStr)&"-"&Day(dateStr)&"-"&Year(dateStr) 
      Case "7" 
          dateString = Month(dateStr)&"."&Day(dateStr)&"."&Year(dateStr) 
      Case "8" 
          dateString = Month(dateStr)&"-"&Day(dateStr) 
      Case "9" 
          dateString = Month(dateStr)&"/"&Day(dateStr) 
      Case "10" 
          dateString = Month(dateStr)&"."&Day(dateStr) 
      Case "11" 
          dateString = Month(dateStr)&language_arr(6)&Day(dateStr)&language_arr(7) 
      Case "12" 
          dateString = Day(dateStr)&language_arr(7)&Hour(dateStr)&language_arr(8) 
      case "13" 
          dateString = Day(dateStr)&language_arr(7)&Hour(dateStr)&language_arr(8) 
      Case "14" 
          dateString = Hour(dateStr)&language_arr(8)&Minute(dateStr)&language_arr(9) 
      Case "15" 
          dateString = Hour(dateStr)&":"&Minute(dateStr) 
      Case "16" 
          dateString = Year(dateStr)&language_arr(5)&Month(dateStr)&language_arr(6)&Day(dateStr)&language_arr(7) 
      Case Else 
          dateString = dateStr 
     End Select 
     DateFormat = dateString 
End Function 
'============================================================================================================================ 
'函数ID:5 
'函数作用:显示错误提示 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 16:29 
'修改时间: 
'传人参数: 
'    errStr:错误提示-字符型 
'返回值:返回提交页面 
'============================================================================================================================ 
sub ShowErr(errStr) 
    Response.Write("") 
    Response.End 
End sub 
'============================================================================================================================ 
'函数ID:6 
'函数作用:查询字符串中特定数据 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 16:40 
'修改时间: 
'传人参数: 
'    contentStr:查询字符串 
'    patternStr:匹配式字符串 
'    patternNum:查询定位-数字型 
'返回值: 
'    找不到返回false 
'    patternNum为-1返回所有匹配字符串并以[10]隔开 
'    否则返回指定位置的字符串 
'============================================================================================================================ 
Function SelectStr(contentStr,patternStr,patternNum) 
    dim objRegExp,matches,matche 
    if contentStr = "" then 
        call ShowErr(language_arr(12)) 
    end if 
    Set objRegExp=new RegExp   '建立正则表达式 
    objRegExp.pattern = patternStr    '设置模式 
    objRegExp.IgnoreCase =False    '设置是否区分字符大小写 
    objRegExp.Global=true    '设置全局可用性 
    objRegExp.pattern = patternStr    '匹配式 

    if objRegExp.test(contentStr) = false then    '全局匹配 
        SelectStr = false 
    else 
        Set matches = objRegExp.Execute(contentStr)    '执行搜索 
        if patternNum = -1 then 
            for each matche in matches 
                SelectStr = SelectStr &"[10]"& matche.value 
            next 
        else 
            SelectStr = matches.Item(patternNum).value 
        end if 
    end if 

    Set objRegExp=Nothing 
End Function 
'============================================================================================================================ 
'函数ID:7 
'函数作用:过滤指定字符 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 16:59 
'修改时间: 
'传人参数: 
'    contentStr:源字符串 
'    badWords:要过滤的字符串,若数目大于1则用英文状态的"^"隔开 
'返回值: 
'    返回过滤后的字符串 
'============================================================================================================================ 
Function Leach(contentStr,badWords) 
    dim badWordsArr,i 
    badWordsArr = Split(badWords,"^") 
    for i = 0 to UBound(badWordsArr) 
        contentStr = replace(contentStr,badWordsArr(i),"") 
    next 
    leach = contentStr 
end Function 
'============================================================================================================================ 
'函数ID:8 
'函数作用:远程文件内容抓取 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 17:24 
'修改时间: 
'传人参数: 
'    urlStr:远程文件地址 
'返回值: 
'    返回远程文件内容 
'============================================================================================================================ 
function Seize(urlStr) 
    dim connect 
    if urlStr = "" then 
        call ShowErr(language_arr(13)) 
    else 
        Set connect = CreateObject("Microsoft.XMLHTTP")    '建立XMLHTTP对象 
        connect.open "GET",urlStr,false    '设置参数,通信方式为get,请求为同步,后面还有两个可选属性:userID,password用于用户验证 
        connect.send()     '数据发送,Send方法的参数类型可以是字符串、DOM树或任意数据流 
        Seize = BytesToBStr(connect.responseBody,"GB2312")    '返回信息,编码为中文 
        set connect = nothing 
    end if 
end function 
'============================================================================================================================ 
'函数ID:9 
'函数作用:数据流编码处理 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 17:30 
'修改时间: 
'传人参数: 
'    body:数据内容 
'    cset:编码格式     
'返回值: 
'    编码处理后的信息 
'============================================================================================================================ 
Function BytesToBstr(body,cset) 
    dim objstream 
    set objstream = Server.CreateObject("adodb.stream") 
    objstream.Type = 1    '以二进制模式打开 
    objstream.Mode =3 
    objstream.Open 
    objstream.Write body 
    objstream.Position = 0 
    objstream.Type = 2 
    objstream.Charset = cset 
    BytesToBstr = objstream.ReadText 
    objstream.Close 
    set objstream = nothing 
End Function 
'============================================================================================================================ 
'函数ID:10 
'函数作用:编码COOKIEs 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-16 17:36 
'修改时间: 
'传人参数: 
'    contentStr:数据内容 
'返回值: 
'    编码处理后的信息,字符以"a"隔开 
'============================================================================================================================ 
Function codeCOOKIE(contentStr) 
    Dim i,returnStr 
    For i = Len(contentStr) to 1 Step -1 
        returnStr = returnStr & Ascw(Mid(contentStr,i,1)) 
        If (i <> 1) Then returnStr = returnStr & "a" 
    Next 
    CodeCOOKIE = returnStr 
End Function 
'============================================================================================================================ 
'函数ID:11 
'函数作用:解码COOKIEs 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-17 16:58 
'修改时间: 
'传人参数: 
'    contentStr:数据内容         
'返回值: 
'    解码处理后的信息         
'============================================================================================================================ 
Function DecodeCOOKIE(contentStr) 
    Dim i 
    Dim StrArr,StrRtn 
    StrArr = Split(contentStr,"a") 
    For i = 0 to UBound(StrArr) 
        If isNumeric(StrArr(i)) = True Then 
            StrRtn = Chrw(StrArr(i)) & StrRtn 
        Else 
            StrRtn = contentStr 
            Exit Function 
        End If 
    Next 
    DecodeCOOKIE = StrRtn 
End Function 
'============================================================================================================================ 
'函数ID:12 
'函数作用:检验数据提交来源是否合法 
'作者名称:茫仔 xiamangmang@gmail.com 博客:blog.mzoe.com 
'建立时间:2006-2-18 18:55 
'修改时间: 
'传人参数: 

'返回值: 
'    Boolean 
'============================================================================================================================ 
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=True 
End Function 
'============================================================================================================================ 
12下一页阅读全文

推荐阅读
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了一个在线急等问题解决方法,即如何统计数据库中某个字段下的所有数据,并将结果显示在文本框里。作者提到了自己是一个菜鸟,希望能够得到帮助。作者使用的是ACCESS数据库,并且给出了一个例子,希望得到的结果是560。作者还提到自己已经尝试了使用"select sum(字段2) from 表名"的语句,得到的结果是650,但不知道如何得到560。希望能够得到解决方案。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了一个免费的asp.net控件,该控件具备数据显示、录入、更新、删除等功能。它比datagrid更易用、更实用,同时具备多种功能,例如属性设置、数据排序、字段类型格式化显示、密码字段支持、图像字段上传和生成缩略图等。此外,它还提供了数据验证、日期选择器、数字选择器等功能,以及防止注入攻击、非本页提交和自动分页技术等安全性和性能优化功能。最后,该控件还支持字段值合计和数据导出功能。总之,该控件功能强大且免费,适用于asp.net开发。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • vb.net面试题,请大家帮忙,谢谢。如果需要讲详细一点,那就加我QQ531412815第4题,潜在的错误,这里的错误不是常规错误,属于那种只有在运行是才知道的错误:Catchex ... [详细]
  • 03Spring使用注解方式注入
    基于注解的DI注入1.导包环境搭建:导入aop包(spring-aop-4.1.6.RELEASE.jar)2.创建类3.创建spring.xml配置文件(必须在src目录下)该配 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • PreparedStatement防止SQL注入
    添加数据:packagecom.hyc.study03;importcom.hyc.study02.utils.JDBCUtils;importjava.sql ... [详细]
  • 一、Struts2是一个基于MVC设计模式的Web应用框架在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts2优点1、实现 ... [详细]
  • 弹性云服务器ECS弹性云服务器(ElasticCloudServer)是一种可随时自助获取、可弹性伸缩的云服务器,帮助用户打造可靠、安全、灵活、高效的应用环境 ... [详细]
  • 详解 Python 的二元算术运算,为什么说减法只是语法糖?[Python常见问题]
    原题|UnravellingbinaryarithmeticoperationsinPython作者|BrettCannon译者|豌豆花下猫(“Python猫 ... [详细]
  • http头_http头部注入
    1、http头部注入分析1、原理 ... [详细]
author-avatar
Sunday老师
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有