資源描述:
《利用asp打造網(wǎng)站論壇diy》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在學術(shù)論文-天天文庫。
1、利用ASP打造網(wǎng)站論壇DIY>>教育資源庫轉(zhuǎn)貼:xiaxia日期:2004-07-13人氣:79前言:現(xiàn)在網(wǎng)上的論壇到處都有,但不知您是否遇到過這樣的情況:在雜亂無章的討論信息中來尋找自己想要的內(nèi)容,是一件很費費時費力的事情,到后來,您就都不想去看什么論壇了。那么我們能不能對自己網(wǎng)站論壇的內(nèi)容增加審核功能呢?即所有網(wǎng)友發(fā)到論壇的文章,并不立即被顯示出來,必須經(jīng)過站長或者版主審閱之后,認為有價值,有必要推薦給其它網(wǎng)友的,就發(fā)表出來。否則就刪掉了,免得浪費空間,搞得有點像精華區(qū)的意味,這樣你的論壇比起一般的論壇來,能夠提供給為明確有益的內(nèi)容。放到你的網(wǎng)站上,應該能夠
2、吸引更多的網(wǎng)友來訪問。這個設想當然可以實現(xiàn),下面我就簡單介紹如何制作。注:由于本文適用于對ACCESS數(shù)據(jù)庫、HTML、ASP有一定了解的讀者?! ∫弧⒄搲Y(jié)構(gòu)分析 通過上面的功能需求分析,我們可以將論壇的制作分為四大部分: (1)網(wǎng)友注冊和管理模塊:因為引入了站長或者版主,在論壇中就必須能夠?qū)ζ溥M行身份驗證。這個模塊的功能,就是管理注冊的網(wǎng)友,并能夠提供相關(guān)的查詢。比如,查詢指定的所有發(fā)表的文章,查詢當前發(fā)表文章最多的十個網(wǎng)友,等等。如果你的論壇不是很大,這個模塊可以省略為只帶有版主身份驗證的功能,而去掉那些關(guān)于注冊,查詢的部分?! 。?)文章顯示模塊:顯
3、示所有版主審核過的,覺得值得推薦的文章?! 。?)發(fā)表文章模塊:為注冊網(wǎng)友提供發(fā)表見地的地方,發(fā)表后等待版主審閱?! 。?)文章審閱模塊:版主對所有網(wǎng)又發(fā)表但未經(jīng)審閱的文章進行處理,已決定是發(fā)表還是刪除?! ×私饬司唧w的功能需求后,就可以按模塊的開始論壇的設計了。當然,這些模塊的只是在功能上對論壇結(jié)構(gòu)的劃分,實際上并不能夠完全的把他們獨立出來進行設計。對于這種較小的應用,也沒有必要進行完全的模塊化設計,在良好的規(guī)劃下直接寫程序代碼或許來的更為簡單一些?! τ谡搲瘜崿F(xiàn)起來有一般兩種方法:用文件或者數(shù)據(jù)庫。相對而言,用數(shù)據(jù)庫要簡單高效一些,能夠?qū)φ搲M行更好的控制
4、,也能夠?qū)Y料提供一些驗證和保護。這兒我使用的是ACCESS數(shù)據(jù)庫,對于一般的中小型的應用,ACCESS應該是能夠勝任的?! 纳厦娴姆治隹梢灾缿撚兴膫€表,下面我給出每個表的結(jié)構(gòu)?! 。?)表(用來存放訊息): ID: 文本類型,必填。是網(wǎng)友代號。 密碼: 文本類型,必填。 昵稱: 文本類型,必填?! MAIL:文本類型,必填?! ÷殑眨骸?shù)字類型,必填。-1代表普通網(wǎng)友,0代表站長。大于0的數(shù)字代表版主?! ∥恼聰?shù):數(shù)字類型,必填。網(wǎng)友發(fā)表的文章總數(shù)。 文本類型,可選?! ⌒詣e: 文本類型,可選?! 。骸∥?/p>
5、本類型,可選?! 。?)內(nèi)容表(用來存放具體文章內(nèi)容和相關(guān)訊息): ID:自動編號,并為其設置索引,以加快搜尋的速度?! 】窗錓D:數(shù)字類型,來自看板列表,表示文章所屬看板?! ≈黝}ID:數(shù)字類型,來自主題表,表示文章所屬主題?! D:文本類型,來自表,表示文章的。 日期:日期/時間類型,預置初值為函數(shù)NO主題表INNERJOIN&nbs12345678910...下一頁>>>>>>這篇文章來自..,。p;(內(nèi)容表INNERJOIN看板列表ON內(nèi)容表.看板ID=看板列表.ID)ON主題表.ID=內(nèi)容表.主題ID表INN
6、ERJOIN看板列表ON表.ID=看板列表.板主表內(nèi)容表主題表INNERJOIN內(nèi)容表ON主題表.ID=內(nèi)容表.主題ID看板列表INNERJOIN主題表ON看板列表.ID=主題表.看板L的內(nèi)容,且放在一邊,我們來仔細看看具體實現(xiàn)注冊的ASP腳本?! 。?)將資料中的單引號改成兩個單引號,并且在前后加上單引號FunctionSqlStr(data)SqlStr="’"Replace(data,"’","’")"’"EndFunction 注:這是一個自定義的函數(shù),用來把用戶輸入中的單引號(’)轉(zhuǎn)換成兩個單引號(’)。在ASP中,用雙引號圍著的是字符串,因而上面的
7、"’"代表的就是只有一個單引號的字符串。之所以要把一個單引號換成兩個單引號,這是因為在SQL語句中,用單引號圍起來是用來代表變量的。為了不至于混淆,就要把字符串中的單引號用兩個單引號來表示。而所有的用戶輸入都要作為變量嵌入到SQL語句中的,所以這個函數(shù)是必不可少的。 ?。?)存貯準備id=Request("id")passe=Request("nickname")email=Request("email")sex=request("sex") 注:把來自用戶輸入窗體中的內(nèi)容保存在變量中,這不是必須的,但寫了更容易讀寫。ifRequest("name")=""t
8、henname=""el