PHP留言板製作

一.設計思路

1.項目的流程

        在講留言板的製作之前,我決定還是先講一下項目這個概念,以及項目的流程。
        一個項目通俗來講就是在規定期限內花費一定的資源所完成的產品,如果把我們所做的留言板的功能擴大,它便是一個項目。而一個項目的開發也是有嚴格的流程,總的來說有以下幾個流程:需求分析,概要設計,詳細設計,編碼,測試,交互,驗收,維護。我覺得在製作留言板開始,很有必要先了解一下項目的流程,我下面就簡單介紹下這幾個流程的意思。

需求分析:在項目的第一個階段,客戶向你提出他的需求,根據客戶的需求,寫一份需求文檔;
概要設計:根據需求文檔,想好所做的產品應該具備哪些功能模塊和接口,寫一份概要設計文檔;
詳細設計:根據概要設計,得知了哪些功能模塊後,設計相應的數據結構,算法,層次結構等,寫出一份詳細設計文檔;
(我個人認爲這三個階段是一個項目最重要的過程,不知道需求,沒有設計好產品的功能模塊和算法,最終導致的結果是自己在編碼過程出現了種種問題,浪費了大量的時間與精力)
編碼測試:這個就不用我多做什麼解釋了,其實在我看來,編碼對於程序員來說並不是什麼難事,所以在進行編碼前一定要做好準備工作;編碼完成後便是測試,測試其實是一門技術活,很有可能你測試的時間比你編碼的時間還要長。
交互驗收維護這個就沒什麼好說的了,從字面的意思就能看出來是什麼了。

2.留言板的製作流程

之所以一開始便講項目的流程,是爲了讓大家腦子裏面有項目這個概念。下面就以留言板來舉例說明。可能你覺得這只是個練手的小demo,但是我認爲,你若是把他當做一個小型的項目來認真對待,效果可能會超出你的想象。我強調的是,在拿到一個項目,你不要急着敲代碼,最好是花點時間把項目的流程走一遍,最後是有一份文檔。

需求設計:先想一想,自己的這個留言板要實現哪些功能,自己最好用個文檔記錄一下。這最不起眼的一步,我覺得是最關鍵的一部,這一步做的好壞直接會影響你留言板製作的好壞,畢竟思路要清晰。
數據庫設計:根據你的需求,想想應該設定哪些表,每個表應該哪些字段,我只能說數據庫一定要認真設計,因爲留言板的最主要功能都是通過數據庫的操作來實現的,所以設計一個合理的數據庫很重要。
界面設計:界面設計包括前臺界面和後臺界面,做個留言板你總要有個界面才說得過去吧,建議你們最好是先想想自己的界面應該怎麼佈局設計,這裏只是單純的界面設計。
編碼測試:前面一系列的工作做好了,然後就可以開始進行編碼以及測試,這個沒什麼好說的。


二.相關技術

製作一個留言板,所涉及的技術或則說你應該掌握的技術,我先列舉出來:
html,css,javascript,php,mysql,bootstrap,ajax

1.html+css+javascript

我們常說的前端開發工程師,便要掌握這些技能;因爲對於前端來說,這是一套的,所以我在這裏一起列舉出來。我簡單地介紹下這幾個技術。
首先是html,這是超文本標記語言,裏面包含了許多標籤,可以製作最基本的靜態網頁,就比如留言板的註冊界面的輸入框;可很多時候,對於一個網頁來說,靜態往往不能滿足人們的需求,比如說我需要他可以實現一些動態的效果,這個時候便需要用JavaScript來實現我們所想要的網頁動態效果,比如說註冊界面你需要判斷輸入是否合法以及賬號是否存在,這個時候便是JavaScript來實現這些;人都是喜歡美的,當一樣東西功能齊全的時候,我們便開始想把他做的好看,美觀,這個時候css,層疊樣式表便凸顯出他的作用了,css的作用便是給各種html中的標籤添加樣式,使其美觀。
對於PHP程序員來說,我覺得這些東西不一定要精通,但是最基本的瞭解還是應該有的,至於達到什麼程度,我個人認爲,以淘寶或者其他一些網站爲例,當你能夠自己看着他的頁面然後寫出他的界面佈局代碼,我覺得就算是通關了。


2.PHP+MYSQL

其實php和mysql應該是分開的,但是我之所以把他們一起提出來是因爲對於一個留言板的製作,其實我們需要用到的PHP知識是很少的,不外乎就是數據庫的鏈接,以及對數據庫的增刪改查操作,這裏我提一下就好了。

3.bootstrap

bootstrap其實是一個框架,裏面是一些別人寫好的css樣式和js的樣式。也許你會說,他的樣式並不是想象中的那麼好看,或者說你自己也能寫出很好的樣式。但有時候對於PHP程序員來說,重心並不是在前端上,可我又覺得我自己弄出來的樣式不要看,而又沒有專門的前端開發人員或者說是美工,這個時候bootstrap便能完美解決你的問題。你只需要進入他的官網,下載他的包,解壓後放入自己的項目更目錄下,並在要用到的PHP文件中導入頭文件,便能直接使用他提供的樣式。我個人還是覺得挺好用的,不會還可以去查看幫助手冊。

4.ajax

我以註冊界面爲例,當我們輸入賬號時,通過js獲取賬號,在js裏面判斷賬號的格式是否正確;可如何判斷賬號是否已經註冊過了呢?很多人的做法是直接將這個表單提交出去進行數據庫查詢判斷,但這樣其實並不是最好的做法,對於用戶來說是很麻煩的一件事情,他們更希望的是當我焦點離開輸入框的時候就能知道這個賬號能不能使用。我們知道html可以傳值給js,js能返回給html,php也能和html相互傳值,那麼js如何給php傳值呢?這個時候便需要ajax來實現了。關於ajax我就不多講了,只是給你提一下有一個印象,在我的上一篇博客也有關於ajax的實例應用。

三.經驗與建議


1.基本功能

a.前臺:用戶登陸註冊,增刪改查(留言);
b.後臺:管理員登陸,增刪改查(留言或用 戶),權限設置。

其實整個留言板的核心功能也就以上列舉的那麼一點,如果只是寫這麼一點,就如我前面所提到的那樣,他只是一個留言板,一個小demo而已;若是你學有餘力,那麼你可以嘗試去完善他。

2.附加功能

a.好友系統(互粉)
b.消息系統(互相發送消息)
c.點贊或是加精,置頂,推薦
d.其他
一些用戶互動功能。。。。。。

總結起來:簡單便是留言板,加工便是貼吧,論壇,博客;這就看你的心有多大。

3.登陸註冊

a.驗證碼(網上有寫好的類,可以直接使用)
b.判斷用戶信息是否合法(前面已經提到過,用js實現
c.檢測賬號是否存在(ajax)
d.提交表單檢測(php)
e.session和cooki
e(這兩個還是有區別的,session主要是用於服務端,cookie則是客戶端)  
f.正則表達式
(很強大一個東西,方便字符串操作)

詳細的內容我今天已經講過了,不多累述了。你也許用不到這些東西,我也沒有仔細講 ,但我最主要的目的只要給你提出這些東西,讓你有個印象,當自己要用到的時候便可以自己去網上查找學習應用。

4.增刪改查

a.前面已經講過了,你目前只要掌握php鏈接數據庫,以及數據庫增刪改查的語句便足夠了,深入的以後再學。關於這個我也不多說了,我前面的博客有專門的記錄,不是很清楚的同學可以自己去翻翻。
b.在添加文本的時候,可能大家會覺得<textarea>這個標籤很單調,像csdn的這個編輯器就跟炫酷。這裏給大家介紹下,這個叫富文本編輯器,網上的富文本編輯器很多,我向大家推薦一款我自己用過並且覺得不錯的富文本編輯器——百度編輯器,去百度搜索就有了。我簡單講下怎麼使用,你進入他的官網,去下載這個PHP版本,解壓後放在自己的目錄下,然後查看使用文檔,他有一段代碼,你直接將他文檔的那段代碼拷貝到你要使用的PHP文件裏面就可以了,改下路徑就能使用了。這個很簡單,我也不多說了,有不懂的可以問我。

5.頁面設計

   a.html+css+js(仿照網上的頁面設計)
   b.bootstrap框架(css+js佈局)

6.安全性與合理性

  a.考慮一些用戶非法或者惡意操作時的情景
 
 b.合理性,注重用戶體驗(比如驗證碼,賬號判斷)
(你現在有這個概念就可以了)

7.調試

一個好的程序員是會自己去解決程序出的問題的,PHP和js沒找到可以單步調試的編輯器,這裏我教大家手動調試。

a.PHP:使用 echo “”;die();來查看結果是不是自己想要的來進行判斷。
b.js:使用alert將所得值打印出來進行分析。

其實就是看輸出的結果和自己想要的結果是不是一樣的,方便自己進行判斷。
在留言板製作過程中,最常見的錯誤便是數據庫操作錯誤,這個時候你先看自己的sql語句有沒有寫錯,怎麼判斷呢?你可以將這句sql語句直接拷貝到數據庫裏面看能不能執行,如果不能就說明你這句話有問題,如果能便是說明你其他地方出錯了。


8.數據庫緩存技術

        對於留言板,我們現在只是少量用戶可能沒什麼感覺,可是當有大量用戶都在使用數據庫進行增刪改查,可能會造成數據庫的擁堵,導致最直接的結果便是我們一個頁面的信息久久提交不過去或者是久久獲取不了信息。這個時候便需要數據庫緩存技術了,大概介紹一下,他其實就是PHP爲數據庫開闢的一塊緩存區域,數據庫一次性將數據放在這個緩存區域,那麼你要想獲取數據庫的數據,只需要和緩存區域進行交互就可以了。關於詳細介紹,在我以前寫的博客裏面也有,有興趣的同學可以去看看。這個只需要瞭解就是了,現在用不到,你以後也許會用到。


9.數據庫設計

在數據庫的用戶表裏,我們有一條記錄是記錄的一個用戶,顯然這個用戶可能在留言表裏面也有記錄,在評論表裏面也有記錄。這個時候如果我想刪除這個用戶,這是刪除了用戶表裏面的記錄,可其他表裏仍有他的留言或者評論,這些可能就是垃圾數據了,我們並不需要,若是我們通過PHP一個一個去操作,顯然工作量大並且繁瑣。在這裏,向大家提出觸發器這個東西,觸發器可以實現當你刪除一條用戶的時候,他可以刪除所有和他相關的存在其他表中的一些記錄,大大優化了代碼量,當然增加插入都是可以的。感興趣的同學可以去百度搜索下。

10.一些建議

a.注重思維的培養
b.學會調試
(對於一名程序員來說,養成良好的思維習慣是十分重要的,而調試這門技能也是必不可少的;就比如說你現在才接觸PHP,你不懂,所以你去找會的人問,萬事開頭難,我覺得能理解,可當你接觸了一段時間還是一遇到問題就去問別人,我就覺得不妥了。做爲一名程序員,你遇到問題的第一反應應該是自己該去如何解決這個問題,而不是去找人詢問;而調試和上網查資料恰好能讓你具備分析問題和解決問題的能力,當你具備了這種能力後,不斷地積累便會形成自己獨特得思維。)
c.視頻(兄弟連PHP教程,PHP100都可以,前者講得很詳細,後者更多的則是講案例,根據自己的需要選擇)
d..理論+應用(知行合一)
關於理論和應用的的關係,我就貼張圖表達下我的觀點
e.多看看一些別人的作品,這種網上很多的;平時瀏覽一些網站的時候大家也可以留意一下,想想自己能不能做出這樣的東西,如果有什麼你覺得你不會或者是你覺得很有意思的效果,那麼你可以學習下。


打了這麼多,就到這裏了吧,我說的有什麼錯誤的地方希望大家指出來或者大家有什麼疑問也可以和我討論,共同學習進步。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章