寫在前面 在學(xué)習(xí)了一段時(shí)間后,大家對(duì)ASP有了基本的了解:語法,函數(shù),對(duì)象。現(xiàn)在可以開始動(dòng)手做一個(gè)完整的項(xiàng)目了。這里所有的跟我學(xué)系列, 都需要有一定的基礎(chǔ),如果你感覺讀起來很吃力,最好還是去啃啃書本里的基礎(chǔ)知識(shí)再回來。 在后面的文章中,我們會(huì)和大家一起,從淺入深地完成一些最常用的項(xiàng)目設(shè)計(jì)。所有的項(xiàng)目都會(huì)按設(shè)計(jì)、規(guī)劃、代碼、調(diào)試幾個(gè)步驟來完成(請(qǐng)參考文檔中心的《如何開始一個(gè)ASP網(wǎng)站的設(shè)計(jì)》)。為了簡(jiǎn)單起見,所有的數(shù)據(jù)庫都用ACCESS2000,調(diào)試平臺(tái)是win2000 server +IIS 5.0 這里不提供源代碼給大家下載,主要是希望大家能自己動(dòng)手去寫這些代碼。對(duì)于CSS,圖象之類的資源,會(huì)提供下載的地址。
一、項(xiàng)目設(shè)計(jì) 首先我們要開始的是最簡(jiǎn)單的項(xiàng)目:留言本。不過,“麻雀雖小,五臟俱全”,別小看留言本,跟著我們的腳步,你會(huì)發(fā)現(xiàn),一個(gè)完整的項(xiàng)目總是要全面的知識(shí)來完成。 現(xiàn)在我們開始第一步,項(xiàng)目的功能設(shè)計(jì): 1、單用戶版。只有一個(gè)管理員,所有人都可以留言,可以按留言內(nèi)容搜索留言; 說明:?jiǎn)斡脩舭婧投嘤脩舭嫖覀円院髸?huì)經(jīng)常遇到。 單用戶版是指:所有的用戶都共用一個(gè)環(huán)境,所有的數(shù)據(jù)對(duì)所有用戶都可見; 多用戶版則是每個(gè)用戶都有自己的個(gè)人環(huán)境,每個(gè)用戶的部份數(shù)據(jù)對(duì)所有用戶可見。 對(duì)于留言本來說,多用戶版就是網(wǎng)絡(luò)上常見的可以申請(qǐng)免費(fèi)留言本的那種。 2、記錄下每個(gè)留言者的 IP,QQ,頭像,姓名,主頁,電子郵件,留言時(shí)間,留言內(nèi)容,留言內(nèi)容可以使用UBB代碼。 3、有管理員回復(fù)功能。如果已經(jīng)回復(fù),還可以更改回復(fù)的內(nèi)容。記錄回復(fù)的時(shí)間; 4、記錄主頁的位置,以便快速回到主頁;用錨點(diǎn)記錄頁面頂部,以便快速回到頁首。 5、自定義的頁頭和頁腳,以便顯示特定的信息。 6、將數(shù)據(jù)存到ACCESS數(shù)據(jù)庫 7、管理功能:管理員登錄/回復(fù)/刪除/更改管理員密碼/更改顯示的留言數(shù)/更改主頁地址
二、數(shù)據(jù)庫設(shè)計(jì) 1、數(shù)據(jù)庫名:lyb.mdb 2、表:共有二個(gè)表 表一: admin 字段名 類型 長(zhǎng)度 其它 說明 admin_user 文本 15 不允許空值 管理員用戶名 admin_pass 文本 15 不允許空值 管理員密碼 admin_nick 文本 15 不允許空值 管理員昵稱 admin_web 文本 50 不允許空值 主頁名稱 admin_http 文本 150 可為空值 主頁地址 admin_perpage 數(shù)字/整型 - 小數(shù)為0 每頁顯示記錄數(shù)
表二: main 字段名 類型 長(zhǎng)度 其它 說明 user_id 自動(dòng)編號(hào) - - - user_name 文本 15 不為空 姓名 user_image 文本 30 不為空 頭像文件名 user_from 文本 15 不為空 來自 user_ip 文本 15 不為空 IP地址 user_oicq 文本 10 可為空 QQ號(hào) user_http 文本 50 可為空 主頁 user_email 文本 50 可為空 電子郵件 user_time 日期 - 長(zhǎng)日期 留言時(shí)間 user_ly 文本 255 不為空 留言內(nèi)容 user_replay 是/否 - - 是否回復(fù) user_rply 文本 255 可為空 回復(fù)內(nèi)容 user_rptime 日期 - 長(zhǎng)日期 回復(fù)時(shí)間
數(shù)據(jù)庫做好后,要手工添加管理員的記錄,如下: admin_user: asp2yup admin_pass: asp2yup admin_nick: 小甜甜 admin_web: 我的主頁 admin_http: http://www.he-xi.com (注:改成你們自己的) admin_perpage: 5
最后,把數(shù)據(jù)庫文件改名成 lyb.asp 以保證安全。
三、文件設(shè)計(jì) 1、inc.asp 有關(guān)函數(shù)和常數(shù),包括打開數(shù)據(jù)庫函數(shù),打開表函數(shù),文字處理函數(shù) 2、bottom.htm 頁腳信息 3、index.asp 留言本主頁面。包括顯示留言,管理員登錄,修改參數(shù),回復(fù)留言。引用inc.asp; 4、main.css css文件,存在CSS文件夾下; 5、tou.htm 頭像列表文件; 6、image 文件夾,存頭像及其它圖片;
四、頁面設(shè)計(jì) 1、首先來設(shè)計(jì)CSS,要設(shè)計(jì)的內(nèi)容有:頁面、表格、鏈接、表單對(duì)象 相關(guān)下載: http://www.he-xi.com/newlyb/css/main.css CSS不是我們的重點(diǎn),如果做不來,直接下載就可以了。 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點(diǎn)網(wǎng)絡(luò)工作室留言薄</td> </tr> <tr> <td width="400" height="20">由 <a href="http://www.he-xi.com" target="_blank"> 廈門E點(diǎn)網(wǎng)絡(luò)工作室</a> 出品 版本:1.0 </td> </tr> <tr> <td align="center" colspan="2"> <hr size="1"> </td> </tr>
可以把內(nèi)容改成自己的內(nèi)容。
3、頭像及列表文件tou.htm 頭像可以自己去網(wǎng)上找。或者用這個(gè): 頭像列表網(wǎng)頁 把上面的網(wǎng)頁里的圖保存到images文件夾
4、函數(shù)庫inc.asp 以后我們將會(huì)經(jīng)常用到這個(gè)庫,現(xiàn)在先來寫留言本里要用到的函數(shù),以后再擴(kuò)充。 <% '******************************************************************* '通用數(shù)據(jù)庫ASP函數(shù)
'******************************************************************* '數(shù)據(jù)庫常數(shù) Const databasename="lyb.asp" '數(shù)據(jù)庫名 const br="<br>" '回車換行 const sp=" " '空格
'******************************************************************* '打開數(shù)據(jù)庫 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
'******************************************************************* '關(guān)閉數(shù)據(jù)庫 sub closedb(connect) connect.close set connect=nothing end sub
'******************************************************************* '打開單個(gè)表讀 sub opentable(connect,tbname,myrs) set myrs=server.createobject("ADODB.recordset") rssql="select * from " & tbname myrs.open rssql,connect,1,1 end sub
'******************************************************************* '關(guān)閉臨時(shí)表 sub closetable(rs) rs.close set rs=nothing end sub
'******************************************************************* '查詢數(shù)據(jù)庫 sub searchtable(connect,sql,rs) set rs=server.createobject("ADODB.recordset") rs.open sql,connect,1,1 end sub
'******************************************************************* '查詢并更改數(shù)據(jù)庫 sub changetable(connect,sql,rs) set rs=server.createobject("ADODB.recordset") rs.open sql,connect,1,3 end sub
'******************************************************************* '將字符串中的回車和空格轉(zhuǎn)化為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、主文件結(jié)構(gòu)設(shè)計(jì)index.asp 注:如果你的站點(diǎn)默認(rèn)頁不是index.asp,請(qǐng)改名 在這里,我們先設(shè)計(jì)出主文件的結(jié)構(gòu)就可以了 '引用inc.asp
'接收參數(shù),其中action表示相應(yīng)的動(dòng)作
'根據(jù)action的值來判斷所要執(zhí)行的子程序
'寫留言子程序
'管理員登錄子程序
'回復(fù)子程序
'刪除記錄子程序
'修改參數(shù)子程序
'退出登錄子程序
'讀出留言本相關(guān)信息 <html> <head> <!--引用CSS--!> '輸出網(wǎng)頁標(biāo)題 <body> '輸出導(dǎo)航條 '顯示留言表單 '顯示搜索表單 '顯示留言記錄 '引用bottom.htm </body> </html>
注:把處理參數(shù)和子程序放在最前面,是因?yàn)榭赡苡行┳映绦蛐枰囟ㄏ颍?br>如果放在<head>后面,可能會(huì)出現(xiàn)文件頭已經(jīng)輸出的錯(cuò)誤。當(dāng)然,可以用 其它方法來避免,但這里力求規(guī)范,簡(jiǎn)潔,易讀,通用,就不處理了。
好了,設(shè)計(jì)部份全部完成了,到這里,相信大家都已經(jīng)對(duì)整個(gè)設(shè)計(jì)有了一定的了解了。下一篇,我們將來完成這些代碼。
|