首页 | 站长免费中心 | 新手上路 | 网站运营 | 网页制作 | 图片设计 | 动画设计 | 网页编程 | 网页特效 | 本站专题 | 虚拟主机 | 域名注册 | 网站建设 | 程序下载
       免费空间资源 | 新闻咨询 | 免费域名 | 免费网盘 | 网站推广 | 网站策划 | 建站经验 | 网站优化 | 网页代码 | 源码下载 | 音乐小偷 | 网络赚钱 | 论坛交流
网站建设
网站建设
虚拟主机
虚拟主机
域名注册
域名注册
711网络首页
站长工具
站长工具
网站源码
网站源码
站长论坛
站长论坛

 711网络 网页编程ASP代码

飞腾工作室超强数据检测过滤函数

来源: 互联网    日期:2007-1-13 17:27:42
 

    在数据库入库操作前,要对用户提交的数据做检测,如果提交数据项较多,那么检测代码就可能很长,因此,检测代码函数化是比较好的选择,这样提高了代码的重用率,减少了代码的冗余。 [转自:711网络工作室 http://www.tc711.com]

    本站制作了一个超强入库数据检测过滤函数,代码如下—— [转自:711网络工作室 http://www.tc711.com]

    '==================================
    '=函 数 名:checksql(name,str,attrib,num)
    '=功 能:飞腾工作室超强数据检测过滤函数,本站原创
    '=使用说明:name-参数名(用于错误显示),str-参数值(用于判断),attrib-参数类型(1为字符型,0为数字型),num-参数值字符数量(字符型中0表示不限制,数字型任何情况下都有限制)
    '==================================
    Function checksql(name,str,attrib,num)
     dim founderr,errmsg
     founderr=false
     errmsg=""
     dim sqlname
     sqlname=name
     if attrib=1 then
     dim Bword(18)
     Bword(0)="?"
     Bword(1)=";"
     Bword(2)=">"
     Bword(3)="<"
     Bword(4)="-"
     Bword(5)="’"
     Bword(6)="””"
     Bword(7)="&"
     Bword(8)="%"
     Bword(9)="$"
     Bword(10)="'"
     Bword(11)=":"
     Bword(12)="|"
     Bword(13)="("
     Bword(14)=")"
     Bword(15)="--"
     Bword(16)=" chr(9)"
     Bword(17)=" chr(34)"
     Bword(18)=" chr(32)"
     for i= 0 to ubound(Bword)
     if instr(str,Bword(i))<>0 then
     founderr=true
     errmsg=errmsg+"<br><li>"&sqlname&"中含有非法字符(各种符号)!</li>"
     end if
     next
     if str="" then
     founderr=true
     errmsg=errmsg+"<br><li>"&sqlname&"不能为空!</li>"
     elseif num<>0 then
     if len(str)>num then
     founderr=true
     errmsg=errmsg+"<br><li>"&sqlname&"不能超过"&num&"字符!</li>"
     end if
     end if
     elseif attrib=0 then
     if str="" then
     founderr=true
     errmsg=errmsg+"<br><li>"&sqlname&"不能为空!</li>"
     elseif not isnumeric(str) then
     founderr=true
     errmsg=errmsg+"<br><li>"&sqlname&"不是数字型!</li>"
     elseif len(str)>num then
     founderr=true
     errmsg=errmsg+"<br><li>"&sqlname&"数字型参数位数不能超过"&num&"!</li>"
     end if
     else
     founderr=true
     errmsg=errmsg+"<br><li>过滤函数调用错误!</li>"
     end if
     if founderr then
     response.write errmsg
     response.end
     end if
     checksql=str
    End Function

    注意:

    本代码中对于没有限制字符数量的内容也作了非法字符检测。

    一般来说,不限制字符数量的字段一般都是备注型,如果你需要在这个字段内容中显示那些字符,那么可以把非法字符检测那段代码(即bword段)放于if num<>0 then里面即可,而备注字段的安全检测单独设置。

    如果备注字段采用了各种编辑器,那么其安全性由编辑器提供;如果仅使用UBB的话,那么可以加入以下一段:

    if num<>0 then
    ……
    else
     str = replace(str, ">", ">")
     str = replace(str, "<", "<")
     str = replace(str, "&#", "&")
     str = Replace(str, CHR(32), "  ")
     str = Replace(str, CHR(9), " ")
     str = Replace(str, CHR(34), """)
     str = Replace(str, CHR(39), "'")
     str = Replace(str, CHR(13), "")
     str = Replace(str, CHR(10) & CHR(10), "</P><P> ")
     str = Replace(str, CHR(10), "<BR> ")
    end if

    其实,代码是次要的,掌握思想和方法才是最重要的

    哈哈,忘了举个实例了:

poster=checksql("作者",request.form("poster"),1,10)

    含义是:检测由form提交的poster字段值,字段对应名称为作者,为字符型数据,长度不能超过10个字符。

     



更多的飞腾工作室超强数据检测过滤函数请到论坛查看: http://BBS.TC711.COM



【 双击滚屏 】 【 评论 】 【 收藏 】 【 打印 】 【 关闭 】 来源: 互联网    日期:2007-1-13 17:27:42   

上一篇:图片遮掩代码..
发 表 评 论
查看评论

  您的大名:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
认证编码: 刷新验证码
点评内容: 字数0
  精品推荐  
  本月推荐  
  友情赞助  

关于我们 | 联系我们 | 广告投放 | 留言反馈 | 免费程序 | 虚拟主机 | 网站建设 |  网站推广 |  google_sitemap baidu_sitemap RSS订阅
本站所有资源均来自互联网,如有侵犯您的版权或其他问题,请通知管理员,我们会在最短的时间回复您
Copyright © 2005-2015 Tc711.Com All Rights Reserved 版权所有·711网络   蜀ICP备05021915号
110网监备案 信息产业备案 不良信息举报