asp代码大全
很多人以为ASP已经是老古董了,打开编辑器都不知道从哪下手。其实你现在去翻一些中小企业的内部管理系统,还能看到大量.asp文件在跑。我上个月帮一个做仓储的朋友改系统,里面清一色的VBScript,跑在IIS上稳得很。所以别急着唱衰,ASP代码该会还得会。 ASP本身不是语言,它就是个环境。你写在<% %>里的东西,可以是VBScript,也可以是JScript。绝大多数人用的是VBScript,因为上手快,跟VB沾亲带故。下面这些代码片段,是我这些年反复用到的,按场景分,不按语法分。 最烦的就是每个页面都写一遍Connection。我习惯单独搞个conn.asp,用include引进来: 注意,这是SQL Server的写法。Access的话把Provider换成Microsoft.Jet.OLEDB.4.0,路径用Server.MapPath。我见过有人把密码直接写死在每个页面里,改一次密码要动几十个文件,那场面太惨了。 Request("id")这种写法,等于把数据库大门敞开。我一般写个过滤函数放在公共文件里: 然后所有接收参数的地方都套一层: ASP分页逃不出这三步:算总数、取当前页数据、生成页码链接。核心代码就这几行: 页码部分用循环拼链接就行。我一般会加个判断,当前页不加链接,直接显示数字,看着清楚。 登录状态用Session存用户ID,这个没问题。但有些人把购物车也塞Session里,服务器一重启全丢。我自己的习惯是:Session只存登录凭证,其他数据走数据库或者Cookie。Cookie记得设过期时间,不然浏览器一关就没了: 读的时候用Request.Cookies("user")("id")。注意大小写,VBScript不区分,但JScript区分,混用容易出怪问题。 纯ASP上传文件,不用第三方组件,靠的是Request.BinaryRead。代码比较长,网上有现成的类,搜“无组件上传类ASP”能找到。我试过几个,比较稳的是“化境无组件上传”,改改就能用。不过现在服务器权限卡得严,有时候还得配目录写权限,挺折腾的。 最后说个实在的,ASP代码大全这种标题,网上能搜到一堆,但真正能跑、不报错的没几个。我上面写的这些,都是在IIS 7.5 + SQL Server 2008环境下实测过的。你要是遇到500错误,先看IIS有没有开“发送错误到浏览器”,不然啥都看不到。还有,VBScript里字符串连接用&,不是+,这个坑我踩过不止一次。一、数据库连接:别每次重写
<% Dim conn, connstr connstr = "Provider=SQLOLEDB;Data Source=127.0.0.1;Initial Catalog=mydb;User ID=sa;Password=123456;" Set conn = Server.CreateObject("ADODB.Connection") conn.Open connstr %> 二、防注入:Request不是拿来直接用的
<% Function SafeStr(str) If IsNull(str) Then SafeStr = "" Else SafeStr = Replace(str, "'", "''") SafeStr = Replace(SafeStr, ";", "") SafeStr = Replace(SafeStr, "--", "") End If End Function %>
id = SafeStr(Request("id"))。别嫌麻烦,总比被人拖库强。参数化查询在ASP里也能做,用Command对象加Parameters,但写起来啰嗦,小项目用过滤函数基本够。三、分页:经典三段式
<% page = Request("page") If page = "" Then page = 1 pageSize = 20 Set rs = conn.Execute("SELECT COUNT(*) FROM articles") total = rs(0) rs.Close totalPage = Int((total + pageSize - 1) / pageSize) sql = "SELECT * FROM articles ORDER BY id DESC" Set rs = Server.CreateObject("ADODB.Recordset") rs.Open sql, conn, 1, 1 rs.PageSize = pageSize rs.AbsolutePage = page For i = 1 To pageSize If rs.EOF Then Exit For Response.Write rs("title") & "<br>" rs.MoveNext Next %> 四、Session和Cookie:别混着用
<% Response.Cookies("user")("id") = userId Response.Cookies("user").Expires = DateAdd("d", 7, Date) %> 五、文件上传:无组件方案
- 最近发表
- 随机阅读
- 搜索
-
- 友情链接
-