找回密码
 注册
搜索
查看: 5296|回复: 13

十天学会ASP

[复制链接]
发表于 2009-6-21 16:22:55 | 显示全部楼层 |阅读模式
 楼主| 发表于 2009-6-21 16:23:50 | 显示全部楼层
十天学会ASP之第一天

学习目的:安装调试ASP的环境,写出第一个HELLO WORLD程序。
    首先我们来安装WINSOWS2000自带的IIS作为服务器。(WINSOWS98的PWS也可以,但是不推荐,安装大致和2000相同,这里就不详细说了。)

先是控制面板-添加或删除程序。

然后是添加删除windows组件-选中IIS组件前面的勾

装好以后打开控制面板中的管理工具,会发现多了两个图标,打开IIS管理器

选择默认WEB站点,然后右键属性或者直接按快捷键

大家不要头痛,里面只有三个页面需要修改,先是WEB站点,如果用户有固定IP,可以分配一个IP

接下来在注目录中选择一个自己硬盘上面的文件夹存放网站,选中读取、写入



在文档中添加默认的页面,比如打www.sina.com.cn新浪就是调用了一个默认文档


接下来也是最关键的:1、在刚才你定义的一个文件夹里面新建一个文件,可以用记事本建立一个TXT文件然后改名为ASP,里面的内容如下
<%response.write "hello world!"%>
response.write就是显示的意思,前后的<%%>是asp的标记符号,在这里面的信息都由服务器处理。保存以后就可以在浏览器里面运行这个文件了。127.0.0.1(=localhost)是本机的IP,后面再直接加上建立的那个文件名字就可以了,之所以我图片上面还有一个example,那是因为我建立了一个虚拟目录,这个不知道不要紧,我们往下走,具体深入的东西大家自己慢慢研究,必尽我们的目的就是快速掌握嘛。
回复

使用道具 举报

 楼主| 发表于 2009-6-21 23:50:51 | 显示全部楼层
十天学会ASP之第二天
学习目的:学会用表单元素向服务器传送变量,然后显示变量在客户端的浏览器。
    首先,让我们来看一下DREAMWEAVER的表单元素。



表单元素要放在一个表单域里面,建立一个表单域。然后修改动作里面的文件为要接受这个表单变量的ASP文件。方法有两种,一种是POST,这个方法传送的变量不会在浏览器的地址栏里面显示,能大批量传送数据;GET则是会在浏览器地址栏里面显示的,等一会举例子。[/align
]

    下面我们来一个一个看表单元素。1、文本域,这个是最基本的,传送的是文本信息,一般用户名,密码都要用这个传送,不过要是密码的话要在类型里面选择密码,这样就会以*代替显示出来的字符,文本域的名字非常重要,以后会用到这个名字所以一般不用默认的名字。目前举一个例子:如果文本域的名字是name的话,用来传送网上用户登记的名字,在表单域里面,传送到reg.asp,用POST方法,那么在reg.asp里面这样得到变量<%name=request.form("name")%>如果要显示变量再家加一句,response.write name,这样就形成了一个从客户端到浏览器再回到客户端的过程。如果方法用的是GET的话,那么就改为name=request.querystring("name")实际上两者能统一为name=request("name")。下面看看按钮,按钮里面无非两种,一种是提交表单的按钮,一种是重新输入的按钮。单选按钮,一个按钮有一个值。在列表里面同样,添加列表选项和值。下面举一个例子,实际上各种表单元素都是差不多的。下面是DREAMWEAVER里面的代码:
  1. <form name="form1" method="post" action="reg.asp">
  2. 姓名:
  3. <input type="text" name="name"> //文本域,名字叫name
  4. <br>
  5. 密码:
  6. <input type="password" name="psw"> //文本域,用来输入密码,名字叫psw
  7. <br>
  8. <br>
  9. 性别:
  10. <input type="radio" name="sex" value="男"> //单选,名字叫sex,数值是"男"

  11. <input type="radio" name="sex" value="女"> //单选,名字叫sex,数值是"女"
  12. 女 <br>
  13. <br>
  14. 城市:
  15. <select name="city">
  16. <option value="上海" selected>上海</option> //复选,大家自己分析一下
  17. <option value="北京">北京</option>
  18. </select>
  19. <br>
  20. <input type="submit" name="Submit" value="提交"> //提交按钮
  21. <input type="reset" name="Submit2" value="重置">
  22. </form>
复制代码
下面是reg.asp的代码,用来显示出刚才受到的信息:

  1. <%
  2. name=request.form("name")
  3. psw=request.form("psw")
  4. sex=request.form("sex")
  5. city=request.form("city")
  6. response.write name
  7. response.write psw
  8. response.write sex
  9. response.write city
  10. %>
复制代码

等学会了数据库以后,是不是觉得做一个留言簿非常简单?
回复

使用道具 举报

 楼主| 发表于 2009-6-22 00:18:14 | 显示全部楼层
十天学会ASP之第三天


学习目的:学会ACCEES数据库的使用,并建立一个将来要用的留言簿数据库。
    首先,大家要安装OFFICE里面的ACCEES(我的演示是OFFICE XP版本),安装过程这里就不说了,安装好以后会出现下图的菜单。

单击打开ACCEES

安空数据库,新建一个数据库,文件名字能叫gustbook.mdb,我这里叫example3.mdb
(为了安全期间,文件名复杂一点好,因为ACCESS数据库能被下载的!!)

使用设计器创建新的表,一个数据库MDB文件里面能有多个表

填写字段名字然后选择字段类型,一条记录能有非常多字段,能有非常多字段类型,字段大小的意思就是这个字段最多能容纳的字符树,当这个字段没有所有信息是,ACCEES会用默认值代替(没有所有信息不是空的意思),一般必填字段和允许空字符串分别设置为否、是,以防止出错

按照上图大家分别建立几个字段,在时间中默认值为=now()就是这个字段不必填写,系统直接以当前时间代替

所以的字段都建立以后,关闭这个窗口,系统会出现上图的提示,选择是,主键是记录的标识,为了以后简单,大家能把编号改为ID,更有在ACCEES里面尽量不要用中文表示字段名字

最后,把这个表的名字设置为guestbook,然后双击打开这个表,观看表里面的记录
好了,大家不要急,这个数据库以后有用的,大家不要删除。
回复

使用道具 举报

 楼主| 发表于 2009-6-22 00:26:28 | 显示全部楼层
十天学会asp之第四天

学习目的:掌握ACCESS数据库的连接和读取记录
    今天要学习的内容有一点枯燥,但是很重要。在这里大家不需要知道命令具体的运行情况,外面的很多书籍之所以不适合入门就是因为介绍了太多的理论知识,让初学者一头雾水。
    下面开门见山,看两句话:
  1. <%
  2. set conn=server.createobject("adodb.connection")
  3. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
  4. %>
复制代码

第一句话定义了一个adodb数据库连接组件,第二句连接了数据库,大家只要修改后面的数据库名字就可以了。是不是很简单?
下面再看三句:
  1. <%
  2. exec="select * from guestbook"
  3. set rs=server.createobject("adodb.recordset")
  4. rs.open exec,conn,1,1
  5. %>
复制代码
这三句加在前面两句的后面,第一句:设置查询数据库的命令,select后面加的是字段,如果都要查询的话就用*,from后面再加上表的名字,我们前面建立的是不是一个gustbook表阿?第二句:定义一个记录集组件,所有搜索到的记录都放在这里面,第三句是打开这个记录集,exec就是前面定义的查询命令,conn就是前面定义的数据库连接组件,后面参数“1,1”,这是读取,后面讲到修改记录就把参数设置为1,3,好了接下来我们读取记录。
  1. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  2. <%do while not rs.eof%><tr>
  3. <td><%=rs("name")%></td>
  4. <td><%=rs("tel")%></td>
  5. <td><%=rs("message")%></td>
  6. <td><%=rs("time")%></td>
  7. </tr><%
  8. rs.movenext
  9. loop
  10. %>
  11. </table>
复制代码

在一个表格中,我们用4列分别显示了上次建立的表里面的四个字段,用do循环,not rs.eof的意思是条件为没有读到记录集的最后,rs.movenext的意思是显示完一条转到下面一条记录,<%=%>就等于<%response.write%>用于在html代码里面插入asp代码,主要用于显示变量。
    好了今天就结束了,大家可以多实践,可以先下载我的示例看一下,调试一下。下面是我机器上面的结果图片。

回复

使用道具 举报

 楼主| 发表于 2009-6-22 00:28:04 | 显示全部楼层
十天学会asp之第五天


学习目的:学会数据库的基本操作1(写入记录)
    数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。今天我们先学习写入记录。
先建立一个表单:
  1. <form name="form1" method="post" action="example5.asp">
  2. name <input type="text" name="name"><br>
  3. tel <input type="text" name="tel"><br>
  4. message <input type="text" name="message" value=""><br>
  5. <input type="submit" name="Submit" value="提交">
  6. <input type="reset" name="Submit2" value="重置">
  7. </form>
复制代码
表单提交到example5.asp,下面是example5.asp的代码:
  1. <%
  2. set conn=server.createobject("adodb.connection")
  3. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
  4. name=request.form("name")
  5. tel=request.form("tel")
  6. message=request.form("message")
  7. exec="insert into guestbook(name,tel,message)values('"&name&"','"&tel&"','"&message&"')"
  8. conn.execute exec
  9. conn.close
  10. set conn=nothing
  11. response.write "记录添加成功!"
  12. %>
复制代码
在这里前面两句我不说了,后面三句我也不说了,前面说过exec里面的是执行的命令,添加记录的比较繁,大家要仔细看。insert into后面加的是表的名字,后面的括号里面是需要添加的字段,不用添加的或字段的内容就是默认值的能省略。注意,这里的变量一定要和ACCESS里面的字段名对应,否则就会出错。values后面加的是传送过来的变量。exec是个字符串,"insert into guestbook(name,tel,message)values("是第一段,在ASP里面不能嵌双引号,所以能用代替双引号,放在双引号里面,连接两个变量用+或&所以","又是一段,中间夹了一个name就是表单传来的变量,这样就能在这个变量外面加两个,表示是字符串了,后面的tel是数字型变量所以不必外面包围,大家慢慢分析这句话,如果用表单传来的数据代替变量名字的话这句话为(假设name="aaa",tel=111,message="bbb"):"insert into guestbook(name,tel,message)values(aaa,111,bbb)"。
接下来的conn.execute 就是执行这个exec命令,最后别忘记把打开的数据库关闭,把定义的组件设置为空,这样能返回资源。上次的读取为了简单,我没有关闭,大家能补充上去:
  1. rs.close
  2. set rs=nothing
  3. conn.close
  4. set conn=nothing
复制代码
记住,次序不能颠倒!
大家能到数据库里面去看一看,或用example4.asp读取看看是不是多了记录阿?
回复

使用道具 举报

 楼主| 发表于 2009-6-22 00:28:40 | 显示全部楼层
十天学会asp之第六天


学习目的:学会数据库的基本操作2(查询记录)
    在第四天中我们有这样一个程式:
  1. <%
  2. set conn=server.createobject("adodb.connection")
  3. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
  4. exec="select * from guestbook"
  5. set rs=server.createobject("adodb.recordset")
  6. rs.open exec,conn,1,1
  7. %>
复制代码
我们查询的是所有的记录,不过我们要修改、删除记录的时候不可能是所有记录,所有我们要学习检索合适的记录。先看一条语句:
a="张三"
b=111
exec="select * from guestbook where name="+a+"and tel="+b
where后面加上的是条件,和是and,或是or,我想=,<=,>=,<,>的含义大家都知道吧。这句话的意思就是搜索name是张三的,并且电话是111的记录。更有一点就是如果要搜索一个字段里面是不是包含一个字符串就能这么写:where instr(name,a)也就是搜索name里面有a(张三)这个字符串的人。
我这里的a,b,是常量,大家能让a,b是表单提交过来的变量,这样就能做一个搜索了。
下面大家看看这个代码,理解一下:
  1. <form name="form1" method="post" action="example6.asp">
  2. 搜索:<br>
  3. name =
  4. <input type="text" name="name">
  5. and tel=
  6. <input type="text" name="tel">
  7. <br>
  8. <input type="submit" name="Submit" value="提交">
  9. <input type="reset" name="Submit2" value="重置">
  10. </form>
复制代码


example6.asp:
  1. <%
  2. name=request.form("name")
  3. tel=request.form("tel")
  4. set conn=server.createobject("adodb.connection")
  5. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
  6. exec="select * from guestbook where name="+name+" and tel="+tel
  7. set rs=server.createobject("adodb.recordset")
  8. rs.open exec,conn,1,1
  9. %>
  10. <html>
  11. <head>
  12. <title>无标题文件</title>
  13. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  14. </head>
  15. <body bgcolor="#FFFFFF" text="#000000">
  16. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  17. <%
  18. do while not rs.eof
  19. %><tr>
  20. <td><%=rs("name")%></td>
  21. <td><%=rs("tel")%></td>
  22. <td><%=rs("message")%></td>
  23. <td><%=rs("time")%></td>
  24. </tr>
  25. <%
  26. rs.movenext
  27. loop
  28. %>
  29. </table>
  30. </body>
  31. </html>
复制代码

今天实际上就讲了一个where,大家回去做做试验,把instr()做进去,明天见!
回复

使用道具 举报

 楼主| 发表于 2009-6-22 00:29:10 | 显示全部楼层
十天学会asp之第七天


学习目的:学会数据库的基本操作3(删除记录)
开门见山,大家直接看程式。
  1. exec="delete * from guestbook where id="&request.form("id")
复制代码

上面这句话完成了删除记录的操作,不过锁定记录用了记录唯一的表示id,我们前面建立数据库的时候用的是系统给我们的主键,名字是编号,由于是中文的名字不是非常方便,大家能修改为id,不修改的话就是
exec="delete * from guestbook where 编号="&request.form("id")
下面我们看完整的代码:一个表单传给ASP文件一个ID,然后这个ASP文件就删除了这个ID。
  1. <form name="form1" method="post" action="example7.asp">
  2. delete:
  3. <input type="text" name="id">
  4. <input type="submit" name="Submit" value="提交">
  5. </form>
复制代码
example7.asp:
  1. <%
  2. set conn=server.createobject("adodb.connection")
  3. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
  4. exec="delete * from guestbook where 编号="&request.form("id")
  5. conn.execute exec
  6. %>
复制代码
我在示例里面加了一个example72.asp,和example4.asp差不多,就是加了一个id字段,大家能先运行这个文件看一下所有记录的ID和想删除记录的ID,删除记录以后也能通过这个文件复查。等到最后一天,我们会把所有的这些东西整合的。大家就不会需要这么麻烦的操作。

example72.asp:
  1. <%
  2. set conn=server.createobject("adodb.connection")
  3. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("example3.mdb")
  4. exec="select * from guestbook"
  5. set rs=server.createobject("adodb.recordset")
  6. rs.open exec,conn,1,1
  7. %>
  8. <html>
  9. <head>
  10. <title>无标题文件</title>
  11. <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
  12. </head>

  13. <body bgcolor="#FFFFFF" text="#000000">

  14. <table width="100%" border="0" cellspacing="0" cellpadding="0">
  15. <%
  16. do while not rs.eof
  17. %><tr>
  18. <td><%=rs("编号")%></td>
  19. <td><%=rs("name")%></td>
  20. <td><%=rs("tel")%></td>
  21. <td><%=rs("message")%></td>
  22. <td><%=rs("time")%></td>
  23. </tr>
  24. <%
  25. rs.movenext
  26. loop
  27. %>
  28. </table>
  29. </body>
  30. </html>
复制代码
回复

使用道具 举报

 楼主| 发表于 2009-6-22 00:29:42 | 显示全部楼层
十天学会asp之第八天


学习目的:学会数据库的基本操作4(修改记录)
    先来看代码:
  1. <%
  2. set conn=server.createobject("adodb.connection")
  3. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("test.mdb")//这不是以前的一个数据库,里面就aa,bb两个字段
  4. exec="select * from test where id="&request.querystring("id")
  5. set rs=server.createobject("adodb.recordset")
  6. rs.open exec,conn
  7. %>
  8. <form name="form1" method="post" action="modifysave.asp">
  9. <table width="748" border="0" cellspacing="0" cellpadding="0">
  10. <tr>
  11. <td>aa</td>
  12. <td>bb</td>
  13. </tr>
  14. <tr>
  15. <td>
  16. <input type="text" name="aa" value="<%=rs("aa")%>">
  17. </td>
  18. <td>
  19. <input type="text" name="bb" value="<%=rs("bb")%>">
  20. <input type="submit" name="Submit" value="提交">
  21. <input type="hidden" name="id" value="<%=request.querystring("id")%>">
  22. </td>
  23. </tr>
  24. </table>
  25. </form>
  26. <%
  27. rs.close
  28. set rs=nothing
  29. conn.close
  30. set conn=nothing
  31. %>
复制代码

大家到目前应该分析这个代码没有什么问题,这个代码的作用是接受前面一个页面的ID然后显示这条记录,文本框即是输入的地方也是显示的地方,如果需要修改的话修改以后按提交;如果不必修改就能直接按提交按钮。这里更有一个东西以前没有说,那就是隐藏的表单元素:hidden元素,里面的value是不用用户输入的,会随着表单一起提交,用于传递变量。下面是modifysave.asp的代码:
  1. <%
  2. set conn=server.createobject("adodb.connection")
  3. conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("test.mdb")
  4. exec="select * from test where id="&request.form("id")
  5. set rs=server.createobject("adodb.recordset")
  6. rs.open exec,conn,1,3
  7. rs("aa")=request.form("aa")
  8. rs("bb")=request.form("bb")
  9. rs.update
  10. rs.close
  11. set rs=nothing
  12. conn.close
  13. set conn=nothing
  14. %>
复制代码
在这里,rs.open exec,conn,1,3后面的参数是1,3,这我以前提过,修改记录就要用1,3。实际上修改记录非常容易看懂,记录集是rs,rs("aa")就是当前记录aa字段的东西,让他等于新的数据request.form("aa")当然就修改了,不过最后别忘记保存,那就是rs.update!
说到这里,记录的搜索,读取,修改,插入都说了,通过这最基本的东西就能作出复杂的东西了,外面的大型数据库:新闻系统,留言簿就是字段多一点罢了。今天的示例中的代码是结合以前的数据库的,大家DOWN了以后回去调试分析一下。(rar里面的那个example72.asp还是供大家查询记录ID和核对修改以后的记录用的)
回复

使用道具 举报

 楼主| 发表于 2009-6-22 00:29:59 | 显示全部楼层
十天学会asp之第九天


学习目的:基本的SESSION组件,总结response,request组件。
    首先,有会员系统的所有程式都会用到检测是不是用户已登陆这个步骤。这就用到了SESSION组件,下面我们    看一个代码来说明。
  1. <%
  2. session("islogin")="yes"
  3. %>
复制代码
这句话的意思就是在session里面定义一个islogin字符串变量,值为"yes",直接能赋值,不必声明。是不是非常简单?
如果我们做管理员登陆系统的话,首先是一段检测是不是管理员
if 是 then
  1. session("isadmin")=yes"
  2. else
  3. session("isadmin")="no"
  4. end if
复制代码
在每一个需要管理员才能看的页面最前面加上
  1. <%
  2. if not session("isaadmin")="yes"then
  3. response.redirect "login.htm"
  4. %>
复制代码
这样一般用户就无法打开这个页面。解释一下response.redirect,他是转向的意思,后面的"login.htm"就是转向的文件。这样没有登陆的管理员是无法看到后面的内容的。
    下面总结一下response组件基本就是用到response.write (),response.redirect() 分别是写字符串和转向的作用request基本就是request.form(),request.querystring() 分别是接受post,get方法传来的信息今天就说到这里了,最后我的示范是个登陆系统大家能研究一下,基本就是上面的知识点比较简单的。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|QQ客服|联系我们|Archiver|手机版|小黑屋|悉远网络 ( 鄂ICP备09013446号 )

GMT+8, 2024-11-21 19:02 , Processed in 0.048186 second(s), 5 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表