用PHP製作留言板
來源:互聯網
上載者:User
我們在很多網站上都能看到各式各樣的留言板,它是網站與訪客之間進行交流的主要手段之一。一個設計合理,介面優美的留言板程式能從側面體現網站良好的服務,給來訪使用者留下美好的印象,增強使用者對網站的信心。留言板從程式角度來看其實很簡單,難在樸實無華的功能中有創意的表現。下面我們僅以PHP指令碼程式為例,從程式的角度講述怎樣製作留言板。
留言板實現的原理一般有兩種,即檔案型和資料庫型。它們是以留言資訊在伺服器的存放方式來區分的。由於檔案型留言系統難以勝任多使用者、大容量的資訊處理和查詢事務,因此具有良好延展性的資料庫驅動方式是很多交易處理應用的首選。下面我們以PHP、Mysql系統為平台構建一個基本的留言板。 基本的留言板由留言填寫、儲存、顯示、管理等程式組成,架構很簡單,但是涉及了PHP+Mysql結構的大部分操作,是我們學習PHP編程的絕佳入門練習。
1.資料庫結構:
留言編號 id int 自動遞增
留言者姓名 name varchar 20 最多20個字元
留言時間 msgdate datetime 日期型
電子郵件 email varchar 40 最多40個字元
留言內容 msg text 類型
這是一個簡單的留言儲存模型庫,根據設計需要還可以增加一些欄位,例如記錄訪問者的IP地址、作業系統類型等特徵,為進一步分析客戶群體提供依據。
2.填寫留言的HTML檔案:
write.htm
該檔案構造了留言本最基本的介面,定義了一個包含姓名、電子郵件、留言內容等基本填寫項目的表單,提交後將由savemsg.php程式進行錯誤校正和入庫處理。 3
. 錯誤校正和入庫處理savemsg.php
{ Sdb = mysql_connect(′localhost′,′username′,′password′); //串連資料庫,注意將使用者名稱、口令替換成自己的使用者名稱和口令,以符合實際情況
mysql_select_db(′test′); //選擇guesbook表所在資料庫,這裡是test庫
Squery=″INSERT into guestbook(name, email,msgdate,msg) values(′Sname′, ′Semail′, now(),′Smsg′)″; //構造插入資料的SQL語句
mysql_query(Squery, Sdb); //執行插入資料操作 } ?>
我們可能注意到:在SQL語句中我們使用了Mysql的NOW()函數以‘YYYY-MM-DD HH:MM:SS’的形式返回當前的日期時間,並直接存到DATETIME欄位中(事實上在定義欄位時就可以將msgdate欄位的預設值設定成NOW(),這樣我們對程式就不必另行處理了),另外CURDATE()以‘YYYY-MM-DD’的格式返回今天的日期,可以直接存到DATE欄位中,CURTIME()以‘HH:MM:SS’的格式返回當前的時間,可以直接存到TIME欄位中。
4.查看留言view.php
mysql_select_db(′test′); //選擇資料庫
Squery=″select * from guestbook″; //構造查詢語句
Sresult=mysql_query(Squery, Sdb); //執行查詢語句
echo ′姓名 電子郵件 留言時間 留言內容
′;
//構造表格頭
while(Srow = mysql_fetch_array(Sresult)) { //用迴圈輸出表格
echo ′ ′.Srow[″name″].′ ′;
echo ′ ′.Srow[″email″].′ ′;
echo ′ ′.Srow[″msgdate″].′ ′;
echo ′ ′.Srow[″msg″].′
′; }
mysql_free_result(Sresult);//釋放資源
mysql_close(Sdb);//關閉資料庫
echo ′ ′; ?>
5.管理留言本,該程式能列出所有留言條目概況,並為每個條目提供checkbox,以供選擇刪除。 Addmin.php
到這裡,我們已經構建了一個具備填寫、儲存、瀏覽、管理(主要是刪除操作)等功能的留言本。應該說這個程式達到了我們預期的目的。然而,一個留言本真正投入實用,必須考慮許多特殊情況,並具有良好的人機介面,和一定容錯、錯誤修正性。對比網路上成熟的留言本程式,我們還需要很多工作,這些將在下期“留言板製作進階技巧”裡介紹,就到這裡了,再見!