- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
留言板与公告板的设计与实现
第七章 留言板与讨论板的设计与实现
本章主要介绍了留言板与讨论板的数据库结构、程序流程图及功能实现过程。
7.1留言板的设计与实现
7.1.1 留言板程序流程图
留言板的基本功能就是把访问者的意见、建议和问题等信息记录下来,并提供给其他访问者(包括站长和网友)观看,以便人们进行交流。
留言板应该具有一个“留言表单”网页,以便访问者输入留言信息,并把信息传送给服务器处理。留言信息被送到服务器时,ASP程序负责处理留言并将其存储起来,故需在服务器端设置处理留言信息的程序和存储留言信息的数据库。此外,还要设计浏览留言信息的网页。
留言板程序流程如图7.1所示。
7.1.2留言板数据库的设计
建立留言数据库时,需要建主题、姓名、电子信箱、留言内容、留言时间和表情等字段。主题、姓名、电子信箱和表情等字段是信息比较少的字段,可采用文本数据类型,留言内容会占用较大空间,宜采用备注格式数据类型。而对于时间字段,我们把时间字段设为“日期/时间”类型,并设置默认值为NOW(),这样在创建新的记录时,系统自动填入建立该记录的时间,保存了留言者的留言时间,由于浏览的留言信息以时间顺序排序,故该类型设置索引项为“有(有重复)”。留言板数据库结构如图7-2所示。
图7-2
7.1.3 留言板功能的实现
根据留言板程序流程图可看出,完成一个完整的留言板系统,需要设计提交留言表单、留言表单处理程序和浏览留言信息三部分内容。下面对设计中的关键技术作一说明。
提交留言表单的设计
利用Dreamweaver的表单元素设计主题、姓名、电子信箱、留言内容、留言时间和表情等字段。留言信息可能不只一行,采用文本区域框,其它输入项采用文本框即可。在这里要注意的是:
所有的输入项都要放在一个表单框内。
设置表单的发送对象为ASP程序,同时指明服务器端处理留言程序的ASP程序地址,即form name=form1 method=post action=*.asp中的action参数值。
2.留言表单处理程序
留言表单处理程序主要是把留言表单送来的留言信息存储在数据库中。读取留言表单的内容用Request对象,通过Request对象把读取的值赋给变量,存入数据库中。若要求留言板中有访问者的的IP地址,在此可用命令Request.ServerVariables()找出访问者的的IP地址,把得到的IP地址赋给变量。另外,还需用一个地址转向语句,以便用户能看到自己的留言信息。
3.浏览留言信息的设计
设计思想是打开数据库,逐一取得每个记录各个字段的值,并以一定的格式提供给访问者。当信息过多时,就要给数据分页,故要设定每页显示的信息条数;与此同时,网页要为访问者提供交互功能,即访问者能够决定显示第几页信息,可用文本框输入页数,然后调用Request对象读取输入值并显示留言信息,涉及到的部分程序如下:
rs.pagesize=page_size (设置一页显示的留言条数)
Page=Clng(Request(“Page”))(获取要显示的页数)
If Page1 then Page=1 (若输入的页数小于1,则强制设为第1页)
If Pagers.PageCount then Page=rs.PageCount (若输入的页数大于最大页数,则强制设为最后一页)
Showonepage rs,page
Shoeonepage是一个显示留言的子程序,它根据RS和Page两个参数显示具体的页面,其设计思想利用参数传递过来的值,打开数据库的表的记录集RS,并显示Page指定的页面。
上述的提交留言板信息和显示信息在进行页面处理时放在一个页面上,一页显示10条留言。这样可以减少文件数,也方便显示和写留言。
在留言板代码设计时,比较难的是分页功能的实现。该留言板在显示留言下方设计了“上一页”、“下一页”、“第一页”、“最后一页”的功能。如图7-3所示。
图7-3
相关代码如下:
FORM Action=xianshiliuyan.asp method=GET
A href= ../liuyanban/liuyanban.asp返回留言窗体/a
%
if page1 then
response.write A href=liuyanban.asp?page=1第一页/a
response.write A href=liuyanban.asp?page=(1)上一页/a
end if
if pagers.pagecount then
response.write A HREF=liuyanban.asp?page=(page+1)下一页/a
response.write A HREF=liuyanban.asp?pag
文档评论(0)