使用ASP制作留言薄.docx
- 文档编号:4287282
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:47
- 大小:104.77KB
使用ASP制作留言薄.docx
《使用ASP制作留言薄.docx》由会员分享,可在线阅读,更多相关《使用ASP制作留言薄.docx(47页珍藏版)》请在冰豆网上搜索。
使用ASP制作留言薄
使用ASP制作留言薄
重点:
掌握利用ASP开发网站的方法
难点:
该章的内容比较枯燥,学生的学习兴趣不浓。
解决方法:
利用案例教学。
先制作一个较为成功的案例,再通过学习实例来学习ASP的相关知识。
一、用ASP实现网页BBS
ASP(ActiveServerPages动态服务器主页)的出现,使我们眼前一亮,能不能利用ASP实现网页BBS呢?
回答当然是肯定的。
ASP的诱人之处就在于它提供了一种简单易学的脚本,并带有许多内置的对象,从而提供了一条简捷的编程之路。
该BBS主要由用户注册(浏览器端)、用户注册(服务器端)、加帖子(浏览器端)、加帖子(服务器端)、帖子具体内容的显示和回复以及所有帖子的显示六个部分组成,其中用户信息存放在数据库author.mdb中,帖子存放在数据库bbs.mdb中。
它们均为ACCESS数据库,结构分别如表1、表2所示。
表1author.mdb
字段名数据类型长度说明
Authname文本24用户名
Password文本10密码
表2bbs.mdb
字段名 数据类型 长度 说明
ID 文本 4 帖子的编号
Authname 文本 24 用户名
Subject 文本 80 主题
Content 备注 内容
Adddate日期/时间 加贴的日期
Visitnum 数字 长整型 访问人数
Answernum 文本 4 所回复帖子的编号
(缺省为本身的编号)
Addtime 日期/时间 加贴的时间
Topnum 文本 4 第一层回复帖子的编号
具体实现方法如下所示,其中asp文件和数据库存放在“/hosp/asp"中,其它htm
文件存放在“/hosp"文件中,img文件存放在“/hosp/images"。
1、用户注册(浏览器端)login.htm:
由用户输入相关信息,通过表单传送到服务器。
为了标识方便,请您注册一个用户名称
用户:
密码: 2、用户注册(服务器端)Register.asp: 利用REQUEST.FORM("表单栏位名")接收表单信息,采用ADO技术与数据库author.mdb连接,并将表单信息存入author.mdb中。 --取客户浏览器输入的用户名和密码--> <%name=REQUEST.FORM("name") code=REQUEST.FORM("password") --与author.mdb连接--> SetConnection=Server.CreateObject("ADODB.Connection") Connection.Open"author" SetRS=Connection.Execute("SELECT*FROMauthor") --如果该用户名已存在,请重输,否则存入数据库--> IfNotRS.EOFThen%> 该用户名已被注册,请您重新 <%Else Connection.Execute("INSERTINTOauthor(authname,password)Values('"&name&"','"&code&"')") RS.Close Connection.Close%>
<%EndIf%>
3、加帖子(浏览器端)bbs_add.htm:
由用户输入待加入帖子的相关信息,并传到服务器。
姓名: 主题: 内容: 4、加帖子(服务器端)bbs.asp: 接收帖子内容,并存入bbs.mdb中。 <%name=REQUEST.FORM("name") code=REQUEST.FORM("code") subject=REQUEST.FORM("subject") content=REQUEST.FORM("content") curdate=Date curtime=Time --与author.mdb连接--> SetConnection=Server.CreateObject("ADODB.Connection") Connection.Open"author" SetRS=Connection.Execute("SELECT*FROMauthorWHEREauthname='"&name&"'ANDpassword='"&code&"'") --判断用户名与密码是否匹配--> IfNotRS.EOFThen --打开数据文件,该文件存放帖子的编号,每加一个帖子,编号加1--> SetFileObject=Server.CreateObject("Scripting.FileSystemObject") SetInStream=FileObject.OpenTextFile("c: \inetpub\wwwroot\hosp\asp\data.id",1,False,False) number=Cstr(InStream.Readline+1) SetOutStream=FileObject.CreateTextFile("c: \inetpub\wwwroot\hosp\asp\data.id",True,False) OutStream.WriteLinenumber IfRequest.QueryString("ID")=""Then manswernum=number Else manswernum=Request.QueryString("ID") EndIf IfRequest.QueryString("topnum")=""Then mtopnum=number Else mtopnum=Request.QueryString("topnum") EndIf SetOutStream=Nothing --与bbs.mdb连接,将帖子信息存入数据库中--> SetConnbbs=Server.CreateObject("ADODB.Connection") Connbbs.Open"bbs" Connbbs.Execute("INSERTINTObbs(ID,authname,subject,content,adddate,addtime,answernum,topnum,visitnum)Values('"&number&"','" &name&"','"&subject&"','"&content&"','"&curdate&"','"&curtime&"','"&manswernum&"','"&mtopnum&"',0)") Connbbs.Close%> <%=curdate&""%><%=curtime&"添加贴子"%> //nt-server/hosp/asp/dispbbs.asp">返回论坛 姓名: <%=name%> 主题: <%=subject%> 内容: <%=content%> <%Else%> 您的用户名或密码出错,请您重输! <%EndIf RS.Close Connection.Close%> 5、帖子具体内容的显示和回复detail.asp <%idnum=Request.QueryString("ID") SetConnection=Server.CreateObject("ADODB.Connection") Connection.Open"bbs" SetRS=Connection.Execute("SELECT*FROMbbsWHEREID='"&idnum&"'")%> 姓名: <%=RS (1)%> 主题: <%=RS (2)%> 内容: <%=RS(3)%> ------------------------------------------------------------------------------ --形成回复表单--> <%resub="Re: "&RS (2) mtopnum=RS(8) RS.Close Connection.Close%> ID=<%=idnum%>&topnum=<%=mtopnum%>"> 姓名: 主题: 内容: //nt-server/hosp/asp/dispbbs.asp">返回论坛 6、所有帖子的显示Dispbbs.asp: 列出所有的帖子的主题、作者、时间、访问人数等信息。 <%SetConnection=Server.CreateObject("ADODB.Connection") Connection.Open"bbs" SetRS=Connection.Execute("SELECT*FROMbbsWHEREID=answernumORDERBYIDDESC") SetConn=Server.CreateObject("ADODB.Connection") Conn.Open"bbs" SetRSNEXT=Conn.Execute("SELECT*FROMbbs") DoWhilenotRS.EOF%> <%=RS(0)%> ID=<%=RS(0)%>"><%=RS (2)%>- (1)%><% =RS(4)&""%><%=RS(7)%>(<%=RS(5)%>) <%SetRSNEXT=Conn.Execute("SELECT*FROMbbsWHEREtopnum<>IDANDopnum='"&RS(0)&"'ORDERBYIDASC") DoWhileNotRSNEXT.EOF%> <%=RSNEXT(0)%> ID=<%=RSNEXT(0)%>">Re<%RSNEXT(6)%>: <%=RSNEXT (2)%> - (1)%><%=RSNEXT(4)&""%><%=RSNEXT(7)%>(<%=RSNEXT(5)%>) <%RSNEXT.MoveNext Loop RS.MoveNext Loop RSNEXT.Close Conn.Close RS.Close Connection.Close%>