上面已經介紹了系統的關鍵技術,下面對具體實現進行詳解;
1.開發時,經常需要利用一個設定檔來儲存系統的參數,例如:資料庫連接資訊等。這樣可以提高系統的可移植性,當系統的配置發生變化時,例如:更改伺服器,就不用修改散布在各個頁面的資料庫連接資訊,而只需修改設定檔即可。
下面建立一個系統設定檔sys_conf.inc,用來儲存資料庫連接資訊:
1 2
可以通過require()或include()函數在其他頁面引用sys_conf.inc檔案,從而得到資料庫配置資訊。
其中第4-7行分別定義了$DBHOST、$DBUSER、$DBPWD、$DBNAME,分別用來儲存資料庫伺服器名、登陸使用者名稱、密碼和資料庫名。大家可根據需要自行修改。
2.登陸介面(login.php)
使用者登入 歡迎來到My聊天室
請輸入您的暱稱
註:11-13行定義了一個表單,其中包括暱稱輸入框nick,提交按鈕“登入”,當使用者單擊該按鈕時,通過form的action屬性,頁面將nick輸入框中的資訊使用post方式提交至聊天首頁面main.php
3.聊天室首頁面(main.php):
需要使用HTML架構技術,把整個瀏覽器分為幾個獨立的頁面,每個頁面成為其中一個架構,並相互獨立,這樣頁面就不會隨著顯示留言頁面一起自動重新整理了。
My聊天室
第10-13行使用了架構,使整個瀏覽器視窗包含兩個頁面,分別是留言顯示頁面chat_display.php和使用者發言頁面speak.php。這樣,對於自動重新整理的問題,就可以獨立放在chat_display.php。
4.顯示發言頁面(chat_display.php)
1 2 3 4 顯示使用者留言 5 6 7 8 ";25 }26 27 //清除庫中過時的資料28 @mysql_data_seek($result,$rows-20); //移動記錄指標到前20筆記錄29 list($limtime)=mysql_fetch_row($result);30 $str="DELETE FROM chat WHERE create_time<'$limtime';" ;31 $result=mysql_query($str,$link_id); //執行查詢字串,庫中只留最後20個記錄32 33 //關閉資料庫34 mysql_close($link_id);35 ?>36 37
第9行,通過require_once()函數來引入系統設定檔,以使用資料庫連接資訊。
第11-15行,使用mysql_query()函數進行資料查詢,得到chat表中所有資料
第24行,按“時間+使用者+發言內容”的格式將發言輸出
第27-31行,刪除資料庫中舊的發言資訊,這樣可以保證資料庫的儲存量保持一定的值,同樣是使用mysql_query()函數向伺服器提交查詢。
5.發言頁面(speak.php)
使用者的發言過程是寫資料庫的過程,把使用者的發言資訊和發言時間及使用者名稱一起儲存到chat表中。在chat_display.php上可以讀取這些資料並顯示出來。
1 2 3 4 5 發言 6 7 8 25 26 30 31
第1行,使用session_start()函數初始化session庫,這樣就可以使用登入的session變數user_name來得到使用者的暱稱了,具體的資料庫擷取在第18行使用全部數組$_SEESSION實現。
第9行,通過require_once()函數來引入系統設定檔,以使用資料庫連接資訊。
第12-23行,實現了資料庫的插入操作。
第26-29行定義了HTML表單,包含一個發言輸入框text和提交按鈕“發言”
至此,一個簡單的聊天室製作就完成了。大家可以根據喜好做一些個人化的設計,如增加一個頁面顯示當前聊天室人員名單、發送表情、進一步美化頁面等······