|          
写在前面在学习了一段时间后,大家对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>后面,可能会出现文件头已经输出的错误。当然,可以用
 其它方法来避免,但这里力求规范,简洁,易读,通用,就不处理了。
 
 好了,设计部份全部完成了,到这里,相信大家都已经对整个设计有了一定的了解了。下一篇,我们将来完成这些代码。
 |