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