第11章网络程序开发实例书店BBS论坛.ppt

上传人:本田雅阁 文档编号:3123516 上传时间:2019-07-13 格式:PPT 页数:35 大小:152.52KB
返回 下载 相关 举报
第11章网络程序开发实例书店BBS论坛.ppt_第1页
第1页 / 共35页
第11章网络程序开发实例书店BBS论坛.ppt_第2页
第2页 / 共35页
第11章网络程序开发实例书店BBS论坛.ppt_第3页
第3页 / 共35页
第11章网络程序开发实例书店BBS论坛.ppt_第4页
第4页 / 共35页
第11章网络程序开发实例书店BBS论坛.ppt_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《第11章网络程序开发实例书店BBS论坛.ppt》由会员分享,可在线阅读,更多相关《第11章网络程序开发实例书店BBS论坛.ppt(35页珍藏版)》请在三一文库上搜索。

1、第11章 网络程序开发实例书店BBS论坛,11.1 书店BBS论坛设计 11.2 书店BBS论坛的实现,本章主要介绍网络程序开发实例书店BBS论坛。通过本章的学习,读者应该掌握以下内容: 书店BBS论坛设计 书店BBS论坛的实现,11.1 书店BBS论坛设计,本章通过一个简单的BBS例子,完成的主要功能包括发表新文章、回复文章,并且可以统计单击次数和回复文章次数。通过学习读者主要应体会BBS的设计思想。,11.2 书店BBS论坛的实现,BBS论坛实现主要包括8个文件,它们分别如下。 bbs.mdb:数据库文件,用来存储文章信息。 index.asp:BBS首页,分页显示文章信息。, odbc_

2、conn.asp:连接数据文件。 function.asp:子程序文件。 count_hit.asp:计算单击次数的文件。 part.asp:显示文章的具体内容文件。 announce.asp:发表新文章文件。 re_announce.asp:发表回复文章文件。,1数据库文件bbs.mdb 为了保存信息,就要建立数据库,在Access建立数据库文件bbs.mdb,并建立一个表bbs,数据结构如图11-1所示。,图11-1 bbs数据结构,2BBS首页文件index.asp 首页的任务是显示数据库中的文章,并提供发表新文章的超链接。,% dim sql,rs 因为要分页显示查询结果,所以用下面方

3、法创建一个recordset对象 sql=“select * from bbs where layer=1 order by submit_date desc“ set rs=Server.CreateObject(“ADODB.Recordset“) rs.Open sql,db,1,if not rs.bof and not rs.eof then 以下主要为了分页显示 dim page_size 定义每页多少条记录变量 dim page_no 定义当前是第几页变量 dim page_total 定义总页数变量 page_size=10 每页显示10条记录,if Request(“page

4、_no“)=“ then 如果第一次打开,则page_no为1,否则,由传回的参数决定 page_no=1 else page_no=cint(Request(“page_no“) end if,session(“page_no“)=page_no 将page_no存入session,以备其他页返回时用 rs.pagesize=page_size 设置每页多少条记录 page_total=rs.pagecount 返回总页数 rs.absolutepage=page_no 设置当前显示第几页,下面一段显示当前页的所有记录 dim i,j i=0 j=page_size 该变量用来控制显示多少条

5、记录 do while not rs.eof and j0 循环知道当前页结束或文件结尾 i=i+1 j=j-1 %,3数据库连接文件odbc_conn.asp 数据库连接文件的任务是完成连接数据库的操作。 % 连接BBS数据库 dim db,connstr connstr=“DBQ=“,set db=Server.CreateObject(“ADODB.connection“) db.Open connstr %,4自定义函数文件function.asp % private sub select_page(page_no,total_page) response.write “请选择页码:“

6、 dim i for i=1 to total_page if i=page_no then response.write i & “ “,else response.write “ & i & “ “ end if next end sub %,5计算单击次数文件count_hits.asp % dim bbs_id bbs_id=request(“bbs_id“),下面一段将点击次数加1,然后引导至part.asp以显示内容 sql=“update bbs set hits=hits+1 where bbs_id=“ & bbs_id 更新次数 db.execute(sql

7、) db.close response.redirect “part.asp?bbs_id=“ & bbs_id %,6显示具体内容文件part.asp 以下显示当前记录内容 dim sql,rs sql=“select * from bbs where bbs_id =“ & bbs_id set rs=db.execute(sql) %,以下显示所有回复文章内容 sql=“select title,body,user_name,submit_date from bbs where“ sql=sql & “ parent_id=“ & bbs_id 这个条件是为了显示所有回复的文章 sql=

8、sql + “ order by submit_date desc“ set rs=db.execute(sql),dim I 这个变量是为了给回复的文章编号 I=0 DO WHILE NOT RS.EOF I=I+1 %,7发表新文章文件announce.asp 发表新文章 发表新文章,“ and request(“user_name“)“ then dim title,body,layer,parent_id,child,hits,ip,user_name 定义变量方便使用 title=request.form(“title“) 返回文章标题 body=request.form(“body

9、“) 返回文章内容,user_name=request.form(“user_name“) 返回作者姓名 layer=1 这是第一层 parent_id=0 因为是第一层,父编号设为0 child=0 回复文章数目为0 hits=0 点击数为0,ip=Request.ServerVariables(“remote_addr“) 作者IP地址 以下将文章保存到数据库 dim sql,svalues SQL = “Insert into bbs(title,layer,parent_id,child,hits,ip,user_name,submit_date“ svalues = “values(

10、“ & title & “,“ & layer & “,“ & parent_id & “,“ &child & “,“ & hits & “,“ & ip & “,“ & user_name & “,“ & date() & “,if body“ then 如果有内容,则添加body字段 sql = sql & “,body“ svalues = svalues & “,“ & “ & body & “ end if sql = sql & “) “ & svalues & “)“ db.execute(sql) db.close 关闭connection对象,保存完毕,重定向回首页 res

11、ponse.redirect “index.asp?page_no=“ & session(“page_no“) end if %,8回复文章文件re_announce.asp 回复文章 ,“ and request(“user_name“)“ then dim body,layer,parent_id,child,hits,ip,user_name 定义变量方便使用 title=request.form(“title“) 返回文章标题 body=request.form(“body“) 返回文章内容,user_name=request.form(“user_name“) 返回作者姓名 lay

12、er=2 这是第二层 parent_id=bbs_id 因为是第二层,父编号为bbs_id child=0 回复文章数目为0 hits=0 点击数为0,ip=Request.ServerVariables(“remote_addr“) 作者IP地址 以下将文章保存到数据库 dim sql,svalues sql = “Insert into bbs(title,layer,parent_id,child,hits,ip,user_name,submit_date“ svalues = “values(“ & title & “,“ & layer & “,“ & parent_id & “,“

13、 &child & “,“ & hits & “,“ & ip & “,“ & user_name & “,“ & date() & “,if body“ then sql = sql & “,body“ svalues = svalues & “,“ & “ & body & “ end if sql = sql & “) “ & svalues & “)“ db.execute(sql),下面两句将原文章的回复数加1 sql=“update bbs set child=child+1 where bbs_id=“ & bbs_id db.execute(sql) db.close 重定向回原来页面 response.redirect “part.asp?bbs_id=“ & bbs_id end if %,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1