[图文]十天学会ASP

山云文库
当前位置:首页 » 十天学会ASP » 正文

[图文]十天学会ASP

十天学会asp之第三天
十天学会asp之第三天十天学会ASP_十天学会手机摄影_郭天祥十天学会单片机

菜鸟十天学会 ASP 教程 安装调试 ASP 的环境 学习目的: 学习目的:安装调试 ASP 的环境,并且调试第一个简单的程序。

因为我们学 ASP 的目的就是想建立一个网站,那么一般习惯是建立的网站内所有文件 应该同时放到一个文件夹中(当然这个文件夹中还可以按需要设置子文件夹!),所以在这里 我在 E 盘建立一个 myweb 的文件夹。

首先来安装 Windows 2000/XP 自带的 IIS 作为服务器。

在这里因为我的机器是 XP 所以所有截图都是 XP 下完成的。

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

然后是添加删除 windows 组件-选中 IIS 组件前面的勾,之后等待安装,这里可以观 看本站以前给大家做的视频教程,完成安装后。

视频教程 视频教程

之后在控制面板中双击“管理工具”。

然后双击“internet 信息服务”,这就是 IIS。

选择“默认网站”,然后右键属性或者直接按快捷键在属性页面内只有三个页面需要修改,先是网站,如果用户有固定 IP,可以分配一个 I P接下来在注主目录中选择一个自己硬盘上面的文件夹存放网站(这个目录就是我们上面 说的在 e 盘建立的目录),选中读取、写入

在文档中添加默认的页面,比如打 www.jzxue.com 网页教学网就是调用了一个默认 文档。

接下来也是最关键的: 1、在刚才你定义的一个文件夹里面新建一个文件,可以用记事本建立一个文本文件然 后把下面的内容复制到记事本中: 保存为 1.asp 文件(注意: .asp 不能省略啊, 如果省略了你就保存了一个文本文件了)。

最后打开 IE,在地址栏内输入:http://127.0.0.1/1.asp(或者 http://localhost/1. asp)回车后就可以看到效果了。

最后解释一下代码的含义。

response.write 就是显示的意思,前后的 是 asp 的标记符号,在这里面的信息都由 服务器处理。

127.0.0.1 是地址,1.asp 是文件名。

第一天就结束了 表单传送变量 学习目的: 学习目的:学会用表单元素向服务器传送变量,然后显示变量在客户端的浏览器。

首先,让我们来看一下表单元素。

表单元素要放在一个表单域里面, 建立一个表单域。

然后修改动作里面的文件为要接受 这个表单变量的 ASP 文件。

方法有两种,一种是 POST,这个方法传送的变量不会在浏览 器的地址栏里面显示,可以大批量传送数据;GET 则是会在浏览器地址栏里面显示的,等 一会举例子。

下面我们看一个表单元素。

文本域,这个是最基本的,传送的是文本信息,一般用户名,密码都要用这个传送,不 过要是密码的话要在类型里面选择密码,这样就会以*代替显示出来的字符,文本域的名字 很重要,以后会用到这个名字所以一般不用默认的名字。

现在举一个例子:如果文本域的名字是 name 的话,用来传送网上用户登记的名字, 在表单域里面,传送到 reg.asp,用 POST 方法,那么在 reg.asp 里面这样得到变量<%n ame=request.form("name")%>如果要显示变量再家加一句,response.write nam e,这样就形成了一个从客户端到浏览器再回到客户端的过程。

如果方法用的是 GET 的话, 那么就改为 name=request.querystring("name")实际上两者可以统一为 name=requ est("name")。

下面看看按钮,按钮里面无非两种,一种是提交表单的按钮,一种是重新 输入的按钮。

单选按钮,一个按钮有一个值。

在列表里面同样,添加列表选项和值。

下面举 一个例子,实际上各种表单元素都是差不多的。

下面是具体的代码: (注:把下面代码保存为一个.htm 的文件就可以了.我保存的 1. htm)

姓名: //文本域,名字叫 name
密码: //文本域,用来输入密码,名字叫 psw

性别:

//单选,名字叫 sex,数值是"男" 男 //单选,名字叫 sex,数值是"女" 女

城市:
//提交按钮

下面是 reg.asp 的代码,用来显示出刚才受到的信息:<% name=request.form("name") psw=request.form("psw") sex=request.form("sex") city=request.form("city") response.write name response.write psw response.write sex response.write city %>打开浏览器在地址栏内输入:http://localhost/1.htm 如下图: (呵呵,因为是练习, 我没有美化页面啊!)

输入信息提交之后:

下面我们要开始学数据库了!只要把表单和数据库相应的字段连接上就可以了。

数据库的建立 学习目的: 学习目的:学会 ACCEES 数据库的使用。

首先,要安装 OFFICE 里面的 ACCEES(我的演示是 OFFICE 2003 版本),安装过 程这里就不说了,安装好以后会,打开 Access.按空数据库,新建一个数据库,文件名字 可以叫 guestbook.mdb。

(提示:为了安全期间,文件名复杂一点好,因为 ACCESS 数 据库可以被下载的!!)使用设计器创建新的表,一个数据库 MDB 文件里面可以建立多个表。

双击“使用设计 器创建表”

填写字段名字然后选择字段类型,一条记录可以有很多字段,可以有很多字段类型,字 段大小的意思就是这个字段最多可以容纳的字符数,当这个字段没有任何信息是,ACCEE S 会用默认值代替(没有任何信息不是空的意思),一般必填字段和允许空字符串分别设置 为否、是,以防止出错按照上图分别建立几个字段,在时间中默认值为=now()就是这个字段不需要填写,系 统直接以当前时间代替。

所以的字段都建立以后,关闭这个窗口,按提示保存表,输入表的名字 guest,最后出 现下图的提示,选择是,主键是记录的标识,为了以后简单,大家可以把编号改为 ID,还 有在 ACCEES 里面尽量不要用中文表示字段名字最后,双击打开这个表,观看表里面的记录

数据库的连接和读取 学习目的: 学习目的:掌握 ACCESS 数据库的连接和读取记录 首先还打开我们上一节课建立的数据库中的表,随便输入几条记录,如下图:这节课学习的内容有一点枯燥,但是很重要。

在这里不需要知道命令具体的运行情况, 外面的很多书籍之所以不适合入门就是因为介绍了太多的理论知识,让初学者一头雾水。

下面开门见山,看两行代码:<% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath ("data/guestbook.mdb") %>第一行定义了一个 adodb 数据库连接组件,第二行连接了数据库,大家只要修改后面 的数据库名字就可以了。

是不是很简单? 下面再看三行:

<% exec="select * from guest" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %>这三行加在前面两行的后面,第一句:设置查询数据库的命令,select 后面加的是字 段,如果都要查询的话就用*,from 后面再加上表的名字,我们前面建立的是不是一个 gu st 表阿?第二句:定义一个记录集组件,所有搜索到的记录都放在这里面,第三句是打开 这个记录集,exec 就是前面定义的查询命令,conn 就是前面定义的数据库连接组件,后 面参数“1,1”,这是读取,后面讲到修改记录就把参数设置为 1,3,好了接下来我们读取 记录。

<%do while not rs.eof%><% rs.movenext loop %>
<%=rs("name")%> <%=rs("tel")%> <%=rs("message")%> <%=rs("time")%>
//下面的三条语句是用于关闭数据库 rs.close set rs=nothing conn.close set conn=nothing在一个表格中,我们用 4 列分别显示了上次建立的表里面的四个字段,用 do 循环,n ot rs.eof 的意思是条件为没有读到记录集的最后,rs.movenext 的意思是显示完一条转 到下面一条记录,<%=%>就等于<%response.write%>用于在 html 代码里面插入 a sp 代码,主要用于显示变量。

把上面三段代码依次复制粘贴到剪贴板中,一定要按顺序复制粘贴啊!,然后保存为 d uqu.asp 就可以了!打开浏览器,在地址栏内输入:http://localhost/duqu.asp. 下面是我机器上面的结果图片。

写入记录 学习目的:学会数据库的基本操作--写入记录 数据库的基本操作无非是:查询记录,写入记录,删除记录,修改记录。

今天我们先学习写入记录。

先建立一个表单:(把下面文章保存为 5.htm)

name
tel
message
表单提交到 exa5.asp,下面是 exa5.asp 的代码: (把下面代码保存为 5.asp)<% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath ("data/guestbook.mdb") name=request.form("name") tel=request.form("tel") message=request.form("message") exec="insert into guest(name,tel,message)values('"+name+"',"+tel+",'"+mes sage+"')" conn.execute exec conn.close set conn=nothing response.write "记录添加成功!" %>

在这里前面两句我不说了, 后面三句我也不说了, 前面说过 exec 里面的是执行的命令, 添加记录的比较繁,大家要仔细看。

insert into 后面加的是表的名字,后面的括号里面是需要添加的字段,不用添加的或 者字段的内容就是默认值的可以省略。

注意,这里的变量一定要和 ACCESS 里面的字段名 对应,否则就会出错。

values 后面加的是传送过来的变量。

exec 是一个字符串,"insert into guest(name,tel,message)values('"是第一段,在 ASP 里面不能嵌双引号,所以 可以用'代替双引号,放在双引号里面,连接两个变量用+或者&所以"',"又是一段,中间夹 了一个 name 就是表单传来的变量, 这样就可以在这个变量外面加两个'', 表示是字符串了, 后面的 tel 是数字型变量所以不需要外面包围'',大家慢慢分析这句话,如果用表单传来的 数据代替变量名字的话这句话为(假设 name="aaa",tel=111,message="bbb"):"i nsert into guest(name,tel,message)values('aaa',111,'bbb')"。

接下来的 conn.execute 就是执行这个 exec 命令,最后别忘记把打开的数据库关闭, 把定义的组件设置为空,这样可以返回资源。

下面几条语句用于关闭数据库的代码:rs.close set rs=nothing conn.close set conn=nothing记住,次序不可以颠倒! 可以到数据库里面去看一看,或者用 duqu.asp 读取看看是 不是多了记录阿?下面是我利用上一节的文件读取数据库的图:

查询记录 学习目的: 学习目的:学会数据库的基本操作--查询记录 在第四天中我们用到下面这样一个程序:<% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath ("data/guestbook.mdb") exec="select * from guest" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %>我们查询的是所有的记录,但是我们要修改、删除记录的时候不可能是所有记录,所有 我们要学习检索合适的记录。

先看一条语句:a="aaa" b=1111110 exec="select * from guestbook where name='"+a+"'and tel="+b

where 后面加上的是条件,与是 and,或是 or,我想=,<=,>=,<,>的含义大 家都知道吧。

这句话的意思就是搜索 name 是“aaa”的,并且电话是“1111110”的记录。

还有一点就是如果要搜索一个字段里面是不是包含一个字符串就可以这么写:where inst r(name,a)也就是搜索 name 里面有 a(aaa)这个字符串的人。

我这里的 a,b,是常量,大家可以让 a,b 是表单提交过来的变量,这样就可以做一个搜 索了。

下面大家看看这个代码,理解一下:(把下面代码存为 6.htm 文件)

搜索:
name = and tel=
exam6.asp(把下面代码存为 exam6.asp)<% name=request.form("name") tel=request.form("tel") set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath ("data/guestbook.mdb") exec="select * from guest where name='"+name+"' and tel="+tel set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %> 无标题文档 <% do while not rs.eof %>

<% rs.movenext loop %>
<%=rs("name")%> <%=rs("tel")%> <%=rs("message")%> <%=rs("time")%>
首先在浏览器中输入 http://localhost/6.htm 如下图所示:输入数据库中已有的姓名和电话 aaa,1111110,单击提交,结果如下图所示:

删除记录 学习目的: 学习目的:学会数据库的基本操作--删除记录 开门见山,大家直接看程序。

exec="delete * from guest where id="&request.form("id")上面这句话完成了删除记录的操作,不过锁定记录用了记录唯一的表示 id,我们前面 建立数据库的时候用的是系统给我们的主键,名字是编号,由于是中文的名字不是很方便, 大家可以修改为 id,我已经修改了啊!不修改的话就是用下面的代码了:exec="delete * from guestbook where 编号="&request.form("id")下面我们看完整的代码:一个表单传给 ASP 文件一个 ID,然后这个 ASP 文件就删除 了这个 ID。

7.htm: :

请输入删除的 ID 号:
exam7.asp:(可以先运行这个文件看一下所有记录的 ID 和想删除记录的 ID,删除 : 记录以后也可以通过这个文件复查。

)<% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath ("data/guestbook.mdb")

exec="select * from guest" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 %> 无标题文档

<% do while not rs.eof %> <% rs.movenext loop %>
<%=rs("id")%> <%=rs("name")%> <%=rs("tel")%> <%=rs("message")%> <%=rs("time")%>

修改记录 学习目的: 学习目的:学会数据库的基本操作--修改记录 先来看代码:(存为 exam8.asp 就可以了)<% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath ("data/guestbook.mdb") exec="select * from guest where id="&request.form("id") set rs=server.createobject("adodb.recordset") rs.open exec,conn %>

name tel message
"> "> "> ">
<% rs.close set rs=nothing conn.close set conn=nothing %>到现在应该分析这个代码没有什么问题了吧,这个代码的作用是接受前面一个页面的 I D 然后显示这条记录, 文本框即是输入的地方也是显示的地方, 如果需要修改的话修改以后 按提交;如果不需要修改就可以直接按提交按钮。

在这里因为本教程适合初学的,所以也把提交的表单内容给出来,把下面代码存为 8. htm 文件

请输入要修改的记录的 ID:
这里还有一个东西以前没有说,那就是隐藏的表单元素:hidden 元素,里面的 value 是不 用用户输入的,会随着表单一起提交,用于传递变量。

下面是 modifysave.asp 的代码:<% set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath ("data/guestbook.mdb") exec="select * from guest where id="&request.form("id") set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,3 rs("name")=request.form("name") rs("tel")=request.form("tel")

rs("message")=request.form("message") rs.update rs.close set rs=nothing conn.close set conn=nothing %>在这里,rs.open exec,conn,1,3 后面的参数是 1,3,这我以前提过,修改记录就 要用 1,3。

实际上修改记录很容易看懂,记录集是 rs,rs("aa")就是当前记录 aa 字段的 东西,让它等于新的数据 request.form("aa")当然就修改了,不过最后别忘记保存,那就 是 rs.update! 说到这里,记录的搜索,读取,修改,插入都说了,通过这最基本的东西就可以作出复 杂的东西了,外面的大型数据库:新闻系统,留言簿就是字段多一点罢了。

今天的示例中的 代码是结合以前的数据库的,以后回去调试分析一下。

大家测试的流程:首先运行 8.htm 文件单击提交后,在下图中修改记录修改后单击提交,如下图,说明已经修改成功

可以利用以前的 duqu.asp 来显示是否已经成功修改Session 组件 学习目的: 学习目的:基本的 SESSION 组件,总结 response,request 组件。

首先, 有会员系统的任何程序都会用到检测是不是用户已经登陆这个步骤。

这就用到了 SESSION 组件,下面我们 看一个代码来说明。

<% session("login")="yes" %>这句话的意思就是在 session 里面定义一个 login 字符串变量,值为"yes",直接可以 赋值,不需要声明。

是不是很简单? 如果我们做管理员登陆系统的话,首先是一段检测是不是管理员:if 是 then session("isadmin")=yes" else session("isadmin")="no" end if

在每一个需要管理员才能看的页面最前面加上:<% if not session("isaadmin")="yes" then response.redirect "login.htm" %>这样一般用户就无法打开这个页面。

解释一下 response.redirect,它是转向的意思, 后面的"login.htm"就是转向的文件。

这样没有登陆的管理员是无法看到后面的内容的。

response 组件基本就是用到 response.write(),response.redirect() 分别是写字 符串和转向的作用。

request 基本就是 request.form(),request.querystring() 分别是接受 post,get 方法传来的信息。

最后我们一起来制作一个简单的后台登陆管理界面, 首先在 myweb 目录下建立一个 a dmin 文件夹,然后我们建立一个数据库名字为 admin.mdb,然后我们再建立一个表,表 中设置两个字段 name,password,类型都是文本型的!最后退出时设置主键,保存为表 名 check。

然后可以输入一条记录用户名:admin,密码:admin。

具体建立数据库的方 教程之第三天 数据库的建立》 之第三天: 法请看《菜鸟十天学会 ASP 教程之第三天:数据库的建立 菜鸟十天学会 下面我们开始编写 ASP 程序, 首先建立一个 index.asp(管理主界面)程序, 代码如下:<%@language=vbscript%> <%if not session("checked")="yes" then response.Redirect "login.asp" else %> 管理界面 <body bgcolor="#FFFFFF" text="#000000"> </body>

<%end if%>在上面的代码中,大家可以看到用到 login.asp,left.asp,right.asp 程序 login.asp://登陆系统程序 : 管理员入口 border: 1pt #999999 solid; height: 15pt}

 
 
class="text" size="20"
管理员入口

管理员:
密 码: <%if session("check")="wrong" then response. Write "
验证错误!" end if%>
 
 

在上面的程序中用到一个检查用户和密码是否正确的程序 check.asp://核对输入的 : 用户和密码是否正确<% dim name,password name=request.form("name") password=request.form("password") dim exec,conn,rs exec="select *from check where(name='"&name&"' and password='"&password&"')" set conn=server.createobject("adodb.connection") conn.open "driver={microsoft access driver (*.mdb)};dbq="&server.mappath("adm in.mdb") set rs=server.createobject("adodb.recordset") rs.open exec,conn if not rs.eof then rs.Close conn.Close session("checked")="yes" session("check")="right" response.Redirect "index.asp" else session("checked")="no" session("check")="wrong" response.Redirect "login.asp" end if %>left.asp://管理导航 :<%@language=vbscript%> <%if not session("checked")="yes" then response.Redirect "login.asp" else %> 管理界面

<%end if%>exit.asp://退出系统 :<%@language=vbscript%> <% session("check")="" session("checked")="" response.redirect "login.asp" %>right.asp://具体管理的内容 :<%@language=vbscript%> <%if not session("checked")="yes" then response.Redirect "login.asp" else %> 管理界面 这里是网页教学网的管理系统示例!请大家多研究使用! <%end if%>运行时首先运行 index.asp 程序,运行效果部分截图如下:

分页技术 学习目的: 学习目的:分页技术 今天最后一天我们学习一下 ASP 里面稍微难一点地分页技术,毕竟当我们有 N 条记录 的时候我们不可能把所有记录显示在一个页面里面吧。

<% exec="select * from test" set rs=server.createobject("adodb.recordset") rs.open exec,conn,1,1 rs.PageSize=3 pagecount=rs.PageCount page=int(request.QueryString ("page")) if page<=0 then page=1 if request.QueryString("page")="" then page=1 rs.AbsolutePage=page %>rs.pagesize 设置一个页面里面显示的记录数,pagecount 是我们自己定义的一个变 量,rs.pagecount 是记录的个数,page 也是我们自己定义的一个变量,我们下一页的链 接可以设置为 list.asp?page=<%=page+1%>,下一页的链接可以设置为 list.asp?pa ge=<%=page-1%>,这样当按下链接的时候调用页面自己,page 这个变量就+1 或者 -1 了,最后我们让 rs.absolutepage(当前页面)为第 page 页就可以了。

if request.QueryString("page")="" then page=1,这句话的作用就是我们打开 list.asp 的时候没有跟随 page 变量,自动设置为 page=1,防止出错,还有当我们 if....t hen...放在一行的时候 end if 可以省略。

是不是分页也不难? 下面说一种特殊情况:if page=1 and not page=pagecount,这个时候没有上一页,但是有下一页 elseif page=pagecount and not page=1,这个时候没有下一页,但是有上一页 elseif page<1,这个时候没有任何记录 elseif page>pagecount then,这个时候没有任何记录 elseif page=1 and page=pagecount,这个时候没有上一页,没有下一页 else,这个时候有上一页,也有下一页。

下面看一段显示 1 到 n 页, 且每一个数字点击以后就出现这个数在代表的页面的代码, 很常见哦。

<%for i=1 to pagecount%> <%=i%>" title=""><%=i%>" target="_blank">"><%=i%><%next%>for....next 是循环从 i=1 开始,循环一次加 1 到 pagecount 为止。

最后我的实例里面包含了一个最简单的 ASP 程序,但是功能样样有,是 ASP 的精髓, 每一个 ASP 大型程序都包含了它。

add.htm 增加记录页面 add.asp 增加记录操作 conn.asp 数据库链接 del.asp 删除记录操作 modify.asp 修改记录页面 modifysave.asp 修改记录操作 list.asp 这个是这个程序的核心,通过这个页面实现记录的添加、修改、删除。

test.mdb 数据库,里面有 aa,bb 两个字段:aa 数字型只能接受数字,bb 是字符型。

最后我想说一句,这个实例是 ASP 的精华,一定要好好研究,懂了这个程序,你会发 现你已经会 ASP 了。

最后给大家提供一个源程序,点击这里可以下载 最后给大家提供一个源程序, 最后给大家提供一个源程序 教程全部结束,希望大家继续关注本站!支持本站,帮助本站宣传!!谢谢,希望有能 力的朋友把我上面的教程或本站中的教程实现视频教程!谢谢!我们的网址是 http://ww w.jzxue.com