php_D3_“簡易聊天室 ”實現的關鍵技術 詳解

來源:互聯網
上載者:User
PHP+MySQL實現Internet上一個簡易聊天室的關鍵技術

系統目標:

聊天室使用資料庫彙集每個人的發言,並可將資料庫內的發言資訊顯示在頁面,讓每個使用者都可以看到,具體功能如下:

a.使用者登入:使用者發言時顯示其登入名稱資訊

b.使用者發言:使用者輸入說的話

c.顯示發言資訊:使用者瀏覽所有發言資訊

設計思路:

(1).建立聊天室資料庫及相關資料表

(2).實現使用者登入頁面(login.php)

(3).實現發言頁面(speak.php)

(4).實現發言顯示頁面(chat_display.php)

(5).實現首頁面(main.php)

關鍵技術:

1.自動重新整理頁面:

如果要想使頁面每隔一定時間就自動重新整理,其實現方法是在HTML的與標籤之間加上如下語句:

例如:使用者來到頁面20s後自動跳轉至另一頁面new.php,

2.傳遞使用者名稱:

在使用者登入進入聊天室後,系統應該一直保留其登入資訊,以便其發言時使用,可通過Session來實現。session是一種常用的資訊儲存機制,在此之間要說明本例中的應用。

(1).在使用者登入系統時,需要註冊一個session變數來儲存其登入名稱資訊:

1 

其中,第2行開啟session功能,第3行得到頁面表單上使用者輸入的暱稱資訊,第4行註冊session變數user_name.

(2).在使用者發言的頁面上,在其發言時,擷取session變數user_name,並將其值連同其發言內容存入資料庫:

1 

這樣,在使用者離開系統前,系統將一直利用session來儲存登入名稱資訊,可以隨時在需要時使用。

3.顯示最新發言:

簡易聊天室另一個需要解決的問題是,在顯示發言資訊時,由於發言資訊很多,不能將其全部顯示出來,而只顯示最新的一定數量的發言資訊。這可以通過對發言資訊按發言時間順序排序遞增,並選擇最後的部分發言實現。

下面是在頁面顯示最新的15條發言資訊:

 1 @mysql_data_seek($resut,$rows-15); //移動記錄指標到前15筆記錄 2 if ($rows<15) 3 $l=$rows; 4 else 5 $l=15; //記錄總數小於15,則最多為該記錄數 6 for ($i=1;$i<=$l;$i++) //通過迴圈讀取發言資訊 7 { 8 list($cid,$author,$create_time,$text)=mysql_fetch_row($result); 9 echo $create_time;10 echo " ";11 echo "【".$author."】";12 echo"說到:" ;13 echo $text;14 echo "
"; //輸出留言內容15 }

其中,第1行$result 為查詢所有留言得到的記錄集,通過mysql_data_seek()命令來移動其記錄遊標到倒數第15條記錄上;然後6~15行輸出至多15條發言。

另外,資料庫也沒必要保留全部使用者發言資訊,否則會是資料庫訊速膨脹。可以使用一個策略:只保留最近一定數量的發言,而把其他到期發言及時刪除。

系統實現:

(1).建立資料庫:

CREATE DATABASE 'my_chat';

(2).建立chat表:

1 -- 建立chat表:2 CREATE TABLE `chat` (3 `cid` INT NOT NULL AUTO_INCREMENT ,4 `author` VARCHAR( 50 ) NOT NULL ,5 `create_time` TIME NOT NULL ,6 `text` BLOB NOT NULL ,7 PRIMARY KEY ( `cid` ) 8 );
  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.