我們在很多網站上都能看到各式各樣的留言板,它是網站與訪客之間進行交流的主要手段之一。一個設計合理,界面優美的留言板程序能從側面體現網站良好的服務,給來訪用戶留下美好的印象,增強用戶對網站的信心。留言板從程序角度來看其實很簡單,難在樸實無華的功能中有創意的表現。下面我們僅以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