跟我学做留言本(一)

发表于:2007-06-30来源:作者:点击数: 标签:
写在前面 在学习了一段时间后,大家对ASP有了基本的了解:语法,函数,对象。现在可以开始动手做一个完整的项目了。这里所有的跟我学系列, 都需要有一定的基础,如果你感觉读起来很吃力,最好还是去啃啃书本里的基础知识再回来。 在后面的文章中,我们会和大
写在前面
在学习了一段时间后,大家对ASP有了基本的了解:语法,函数,对象。现在可以开始动手做一个完整的项目了。这里所有的跟我学系列,
都需要有一定的基础,如果你感觉读起来很吃力,最好还是去啃啃书本里的基础知识再回来。
在后面的文章中,我们会和大家一起,从浅入深地完成一些最常用的项目设计。所有的项目都会按设计、规划、代码、调试几个步骤来完成(请参考文档中心的《如何开始一个ASP网站的设计》)。为了简单起见,所有的数据库都用ACCESS2000,调试平台是win2000 server +IIS 5.0 这里不提供源代码给大家下载,主要是希望大家能自己动手去写这些代码。对于CSS,图象之类的资源,会提供下载的地址。

一、项目设计
首先我们要开始的是最简单的项目:留言本。不过,“麻雀虽小,五脏俱全”,别小看留言本,跟着我们的脚步,你会发现,一个完整的项目总是要全面的知识来完成。
现在我们开始第一步,项目的功能设计:
1、单用户版。只有一个管理员,所有人都可以留言,可以按留言内容搜索留言;
说明:单用户版和多用户版我们以后会经常遇到。
单用户版是指:所有的用户都共用一个环境,所有的数据对所有用户都可见;
多用户版则是每个用户都有自己的个人环境,每个用户的部份数据对所有用户可见。
对于留言本来说,多用户版就是网络上常见的可以申请免费留言本的那种。
2、记录下每个留言者的 IP,QQ,头像,姓名,主页,电子邮件,留言时间,留言内容,留言内容可以使用UBB代码。
3、有管理员回复功能。如果已经回复,还可以更改回复的内容。记录回复的时间;
4、记录主页的位置,以便快速回到主页;用锚点记录页面顶部,以便快速回到页首。
5、自定义的页头和页脚,以便显示特定的信息。
6、将数据存到ACCESS数据库
7、管理功能:管理员登录/回复/删除/更改管理员密码/更改显示的留言数/更改主页地址

二、数据库设计
1、数据库名:lyb.mdb
2、表:共有二个表
表一: admin
字段名 类型 长度 其它 说明
admin_user 文本 15 不允许空值 管理员用户名
admin_pass 文本 15 不允许空值 管理员密码
admin_nick 文本 15 不允许空值 管理员昵称
admin_web 文本 50 不允许空值 主页名称
admin_http 文本 150 可为空值 主页地址
admin_perpage 数字/整型 - 小数为0 每页显示记录数

表二: main
字段名 类型 长度 其它 说明
user_id 自动编号 - - -
user_name 文本 15 不为空 姓名
user_image 文本 30 不为空 头像文件名
user_from 文本 15 不为空 来自
user_ip 文本 15 不为空 IP地址
user_oicq 文本 10 可为空 QQ号
user_http 文本 50 可为空 主页
user_email 文本 50 可为空 电子邮件
user_time 日期 - 长日期 留言时间
user_ly 文本 255 不为空 留言内容
user_replay 是/否 - - 是否回复
user_rply 文本 255 可为空 回复内容
user_rptime 日期 - 长日期 回复时间

数据库做好后,要手工添加管理员的记录,如下:
admin_user: asp2yup
admin_pass: asp2yup
admin_nick: 小甜甜
admin_web: 我的主页
admin_http: http://www.he-xi.com (注:改成你们自己的)
admin_perpage: 5

最后,把数据库文件改名成 lyb.asp 以保证安全

三、文件设计
1、inc.asp 有关函数和常数,包括打开数据库函数,打开表函数,文字处理函数
2、bottom.htm 页脚信息
3、index.asp 留言本主页面。包括显示留言,管理员登录,修改参数,回复留言。引用inc.asp;
4、main.css css文件,存在CSS文件夹下;
5、tou.htm 头像列表文件;
6、image 文件夹,存头像及其它图片;


四、页面设计
1、首先来设计CSS,要设计的内容有:页面、表格、链接、表单对象
相关下载: http://www.he-xi.com/newlyb/css/main.css
CSS不是我们的重点,如果做不来,直接下载就可以了。
2、bottom.htm
<br>
<table class=jnfont5 width="650" border="0" cellspacing="0" cellpadding="0" align="center">
<tr>
<td align="center" rowspan="2" height="40">
<a href="http://hexi.vicp.net" target="_blank">
<img src="images/epoint88x31-s.gif" width="88" eight="31" border="0">
</a>
</td>
<td width="400" height="20">厦门E点网络工作室留言薄</td>
</tr>
<tr>
<td width="400" height="20">由
<a href="http://www.he-xi.com" target="_blank">
厦门E点网络工作室</a>
出品 版本:1.0 </td>
</tr>
<tr>
<td align="center" colspan="2">
<hr size="1">
</td>
</tr>
</table>

可以把内容改成自己的内容。

3、头像及列表文件tou.htm
头像可以自己去网上找。或者用这个:
头像列表网页
把上面的网页里的图保存到images文件夹

4、函数库inc.asp
以后我们将会经常用到这个库,现在先来写留言本里要用到的函数,以后再扩充。
<%
‘’*******************************************************************
‘’通用数据库ASP函数

‘’*******************************************************************
‘’数据库常数
Const databasename="lyb.asp" ‘’数据库名
const br="<br>" ‘’回车换行
const sp="&nbsp;" ‘’空格

‘’*******************************************************************
‘’打开数据库
sub opendb(connect)
set connect=server.CreateObject("ADODB.connection")
connect.ConnectionString="DRIVER={Microsoft Aclearcase/" target="_blank" >ccess Driver (*.mdb)}; DBQ=" & server.MapPath(databasename)
connect.Open strconn
end sub

‘’*******************************************************************
‘’关闭数据库
sub closedb(connect)
connect.close
set connect=nothing
end sub

‘’*******************************************************************
‘’打开单个表读
sub opentable(connect,tbname,myrs)
set myrs=server.createobject("ADODB.recordset")
rssql="select * from " & tbname
myrs.open rssql,connect,1,1
end sub

‘’*******************************************************************
‘’关闭临时表
sub closetable(rs)
rs.close
set rs=nothing
end sub

‘’*******************************************************************
‘’查询数据库
sub searchtable(connect,sql,rs)
set rs=server.createobject("ADODB.recordset")
rs.open sql,connect,1,1
end sub

‘’*******************************************************************
‘’查询并更改数据库
sub changetable(connect,sql,rs)
set rs=server.createobject("ADODB.recordset")
rs.open sql,connect,1,3
end sub

‘’*******************************************************************
‘’将字符串中的回车和空格转化为HTML代码(先不处理ubb代码)
function pro(nn)
dd=""
l=len(nn)

for i=1 to l
t=mid(nn,i,1)
select case t
case vbcr
i=i+1
dd=dd&br
case " "
dd=dd&sp
case else
dd=dd&t
end select
next
pro=dd
end function
%>


5、主文件结构设计index.asp
注:如果你的站点默认页不是index.asp,请改名
在这里,我们先设计出主文件的结构就可以了
‘’引用inc.asp

‘’接收参数,其中action表示相应的动作

‘’根据action的值来判断所要执行的子程序

‘’写留言子程序

‘’管理员登录子程序

‘’回复子程序

‘’删除记录子程序

‘’修改参数子程序

‘’退出登录子程序

‘’读出留言本相关信息
<html>
<head>
<!--引用CSS--!>
‘’输出网页标题
<body>
‘’输出导航条
‘’显示留言表单
‘’显示搜索表单
‘’显示留言记录
‘’引用bottom.htm
</body>
</html>

注:把处理参数和子程序放在最前面,是因为可能有些子程序需要重定向,
如果放在<head>后面,可能会出现文件头已经输出的错误。当然,可以用
其它方法来避免,但这里力求规范,简洁,易读,通用,就不处理了。

好了,设计部份全部完成了,到这里,相信大家都已经对整个设计有了一定的了解了。下一篇,我们将来完成这些代码。

原文转自:http://www.ltesting.net