寫在前面 在學習了一段時間后,大家對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>后面,可能會出現文件頭已經輸出的錯誤。當然,可以用 其它方法來避免,但這里力求規范,簡潔,易讀,通用,就不處理了。
好了,設計部份全部完成了,到這里,相信大家都已經對整個設計有了一定的了解了。下一篇,我們將來完成這些代碼。
|