当前位置: 移动技术网 > IT编程>开发语言>Asp > ASP的一些自定义函数整理第1/2页

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

2018年05月29日  | 移动技术网IT编程  | 我要评论

刘德,砝码大陆之魔法天下,泸州现在时

<% 
'============================================================================================================================ 
'函数列表: 
'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("<script>alert("""&errstr&""");location.href=""javascript:history.back()"";</script>") 
    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 
'============================================================================================================================ 
1

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网