写在前面
在学习了一段时间后,大家对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=http://cfan.net.cn/info/"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>
可以把内容改成自己的内容。
3、头像及列表文件tou.htm
头像可以自己去网上找。或者用这个:
头像列表网页
把上面的网页里的图保存到images文件夹
4、函数库inc.asp
以后我们将会经常用到这个库,现在先来写留言本里要用到的函数,以后再扩充。
<%
'*******************************************************************
'通用数据库ASP函数
'*******************************************************************
'数据库常数
Const databasename="lyb.asp" '数据库名
const br="<br>" '回车换行
const sp=" " '空格
'*******************************************************************
'打开数据库
sub opendb(connect)
set connect=server.CreateObject("ADODB.connection")
connect.ConnectionString="DRIVER={Microsoft Access 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>后面,可能会出现文件头已经输出的错误。当然,可以用
其它方法来避免,但这里力求规范,简洁,易读,通用,就不处理了。
好了,设计部份全部完成了,到这里,相信大家都已经对整个设计有了一定的了解了。下一篇,我们将来完成这些代码。
……