首頁 >後端開發 >php教程 >基於PHP MySQL的聊天室設計_PHP教程

基於PHP MySQL的聊天室設計_PHP教程

WBOY
WBOY原創
2016-07-21 16:09:02698瀏覽

筆者在​​網站開發中,採用PHP4.0 MySQL3.23.38建立了多種應用。下面,以一個簡單的聊天室設計為例,介紹PHP MySQL在網頁開發上的應用。

  1、整體設計

  1. 1 構思與規劃:

  聊天室的基本原理,就是把每個連上同一網頁的使用者傳送的發言資料儲存起來,然後將所有的發言資料傳給每一用戶。也就是說,用資料庫匯集每個人的發言,並將資料庫中的資料傳給每一個人就實現了聊天室的功能。

  1.2 表設計

  先使用MySQL建立表格chat用來儲存使用者的發言:

複製程式碼 程式碼如下:

mysql> CREATE TABLE chat
-> (chtime DATATIME- nick CHAR(10) NOT NULL,
->words CHAR(150));

  表中只設定了三個域,chtime是發言的時間,nick為發言者的暱稱,words是發言的內容,發言最多150個字
  1.3 網頁設計

  一個最簡單的聊天室通常需要兩個頁框:一個頁框是使用者輸入發言的表單,另一個用來顯示大家的發言。所以程式碼段通常至少要如下幾段:

  建立頁框的結構(main.php)

  顯示大家發言的程序段(cdisplay.php)

  傳送使用者發言的程式段(speak.php)

  使用者登入進入聊天室程式段(login.php)

  2 、程式設計

  以上規劃完成後,就可以著手程式碼設計了,採用php可以非常簡潔實現以上的功能。

  2.1 使用者登入login.php,本段程式碼是一個完全HTML網頁

複製程式碼 程式碼如下:


使用者登入 <br> <br> 請輸入您的暱稱







  用戶提交自己的暱稱後,就進入聊天室,以下的處理交由main.php處理。
  2.2 頁框主體程式碼段main.php:

複製程式碼 程式碼如下:

setcookie("nick",$nick) //用cookie記錄使用者暱稱,是常用的傳遞變數方法
?>

山西鋁廠聊天室試用版ver1.0






  2.3 顯示發言cdisplay.php
  本程式碼段的任務是將表格chat中的資料取出,顯示在頁框中。每次刷新時,取資料庫中最近的15條發言。同時,為防止資料庫無限增大,需設計刪除陳舊資料的功能。程式碼如下

複製程式碼 程式碼如下:



顯示使用者發言




$link_ID=mysql_connect("main","root");
//連結Mysql伺服器伺服器名為main,管理員名為root
mysql_select_db("abc"); //選擇資料庫
$str="select * from chat ORDER BY chtime;" ; //查詢字串
$result=mysql_query($ str, $link_ID); //發送查詢
$rows=mysql_num_rows($result); //取得查詢結果的記錄筆數
//取得最後15筆發言,並顯示
@mysql_data_seek( $resut,$rows-15); //移動記錄指標到前15筆記錄
if ($rowsfor ($i=1;$ilist($chtime,$nick,$words)=mysql_fetch_row($result);
echo $chtime; echo " ";echo $nick; echo":" ; echo $words; echo "
";
}
//清除庫中過時的資料
@mysql_data_seek($result ,$rows-20); //移動記錄指標到前20筆記錄
list($limtime)=mysql_fetch_row($result);
$str="DELETE FROM chat WHERE chtime$result=mysql_query($str,$link_ID); //送出查詢字串,庫中只留前20個記錄
mysql_close($link_ID);
?>



  2.4 送出發言到資料庫speak.php

複製程式碼 程式碼如下:



發言 title> <br> <br>

If ($words)
{ $link_ID=mysql_connect("main","root");
mysql_select_db_dbnect("main","root");
mysql_select_db_db ("abc"); //資料庫名稱為abc
$time=date(y).date(m).date(d).date(h).date(i).(date(s); / /取得目前時間
$str="INSERT INTO chat(chtime,nick,words) values
('$time','$nick','$words');" ;
mysql_query($ str,$link_ID); //送出發言到資料庫
mysql_close($link_ID);
}
?>
//輸入發言的表單






  完成以上工作後,一個簡單的聊天室製作就完成了。個人嗜好做一些個人化設計,如增加一個頁框,顯示當前聊天室人員名單、增加發言表情、取得發言者IP、進一步美化頁面等等。

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/314593.htmlTechArticle筆者在​​網站開發中,採用PHP4.0 MySQL3.23.38建立了多種應用。下面,以一個簡單的聊天室設計為例,介紹PHP MySQL在網頁開發上的應用。 1.總體...
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn