国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > PHP > 正文

php mysql搭建聊天室實例教程

2024-05-04 23:06:16
字體:
供稿:網(wǎng)友

聊天室很多程序可以實現(xiàn),原理也簡單只要一個無刷新就可以實現(xiàn),最簡單的就是利用一個iframe不停的刷新頁面把用戶的記錄從數(shù)據(jù)庫讀出來就可以了。

MySQL并發(fā)能力強、響應(yīng)速度快,是性能優(yōu)異的數(shù)據(jù)庫軟件;PHP是功能強大的服務(wù)器端腳本語言。筆者在山西鋁廠網(wǎng)站開發(fā)中,采用PHP4.0+MySQL3.23.38建立了多種應(yīng)用。下面,以一個簡單的聊天室設(shè)計為例,介紹PHP+MySQL在網(wǎng)頁開發(fā)中的應(yīng)用。

1、總體設(shè)計

1.1 構(gòu)思與規(guī)劃:

聊天室的基本原理,就是把每個連上同一網(wǎng)頁的用戶傳送的發(fā)言數(shù)據(jù)儲存起來,然后將所有的發(fā)言數(shù)據(jù)傳給每一用戶。也就是說,用數(shù)據(jù)庫匯集每個人的發(fā)言,并將數(shù)據(jù)庫中的數(shù)據(jù)傳給每一個人就實現(xiàn)了聊天室的功能。

1.2 表設(shè)計

首先使用MySQL建立表chat用來儲存用戶的發(fā)言:

  1. mysql> CREATE TABLE chat  
  2. -> (chtime DATATIME, 
  3. -> nick CHAR(10) NOT NULL, 
  4. ->words CHAR(150)); 

表中只設(shè)定了三個域,chtime是發(fā)言的時間,nick為發(fā)言者的昵稱,words是發(fā)言的內(nèi)容,發(fā)言最多150個字符

1.3 網(wǎng)頁設(shè)計

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

建立頁框的結(jié)構(gòu)(main.php)

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

傳送用戶發(fā)言的程序段(speak.php)

用戶登錄進入聊天室程序段(login.php)

2、代碼設(shè)計

以上規(guī)劃完成后,就可以著手代碼設(shè)計了,采用php可以非常簡明實現(xiàn)以上的功能。

2.1 用戶登錄login.php,本段代碼是一個完全HTML網(wǎng)頁

  1. <html> 
  2. <head> 
  3.  <title>用戶登錄</title> 
  4. </head> 
  5. <body>請輸入您的昵稱<br> 
  6. <form action=”main.php” method=”post” target=”_self”> 
  7.  <input type=”text” name=”nick” cols=”20”> 
  8.  <input type=”submit” value=”登錄”> 
  9. </body> 
  10. </html> 

用戶提交自己的昵稱后,就進入到聊天室,以下的處理交由main.php處理。

2.2 頁框主體代碼段main.php:

  1. <? 
  2.  setcookie(“nick”,$nick//用cookie記錄用戶昵稱,是常用的傳遞變量方法 
  3. ?> 
  4. <html> 
  5. <title>山西鋁廠聊天室試用版ver1.0</title> 
  6. <frameset rows=”80%,*”> 
  7. <frame src=” cdisplay.php” name=”chatdisplay”> 
  8. <frame src=”speak.php” name=”speak”> 
  9. </frameset> 
  10. </html> 

2.3 顯示發(fā)言cdisplay.php

本代碼段的任務(wù)是將表chat中的數(shù)據(jù)取出,顯示在頁框中。每次刷新時,取數(shù)據(jù)庫中最近的15條發(fā)言。同時,為防止數(shù)據(jù)庫無限增大,需設(shè)計刪除陳舊數(shù)據(jù)的功能。代碼如下

  1. <html> 
  2. <head> 
  3.  <title>顯示用戶發(fā)言</title> 
  4.  <meta http-equiv=”refresh” content=”5;url=cdisplay.php”> 
  5. </head> 
  6. <body> 
  7. <? 
  8.  $link_ID=mysql_connect(“main”,”root”); 
  9.  //鏈接Mysql服務(wù)器 服務(wù)器名為main,管理員名為root 
  10.  mysql_select_db(“abc”); //選擇數(shù)據(jù)庫 
  11.  $str=”select * from chat ORDER BY chtime;” ; //查詢字符串 
  12.  $result=mysql_query($str$link_ID); //送出查詢 
  13.  $rows=mysql_num_rows($result); //取得查詢結(jié)果的記錄筆數(shù) 
  14.  //取得最后15筆發(fā)言,并顯示 
  15.  @mysql_data_seek($resut,$rows-15); //移動記錄指針到前15筆記錄 
  16.  if ($rows<15) $l=$rowselse $l=15; //記錄總數(shù)小于15,則最多為該記錄數(shù) 
  17.  for ($i=1;$i<=$l;$i++) { 
  18.   list($chtime,$nick,$words)=mysql_fetch_row($result); 
  19.   echo $chtimeecho “ “;echo $nickecho”:” ; echo $wordsecho “<BR>”; 
  20.  } 
  21.  //清除庫中過時的數(shù)據(jù) 
  22.  @mysql_data_seek($result,$rows-20); //移動記錄指針到前20筆記錄 
  23.  list($limtime)=mysql_fetch_row($result); 
  24.  $str=”DELETE FROM chat WHERE chtime<’$limtime’ ;” ; 
  25.  $result=mysql_query($str,$link_ID); //送出查詢字符串,庫中只留前20個記錄 
  26.  mysql_close($link_ID); 
  27. ?> 
  28. </body> 
  29. </html> 

2.4 送出發(fā)言到數(shù)據(jù)庫speak.php

  1. <html> 
  2. <head> 
  3.  <title>發(fā)言</title> 
  4. </head> 
  5. <body> 
  6. <? 
  7.  If ($words
  8.   { $link_ID=mysql_connect(“main”,”root”); 
  9.   mysql_select_db(“abc”); //數(shù)據(jù)庫名為abc 
  10.   $time=date(y).date(m).date(d).date(h).date(i).(date(s); //取得當前時間 
  11.   $str=”INSERT INTO chat(chtime,nick,words) values 
  12.     (‘$time’,’$nick’,’$words’);” ;  
  13.   mysql_query($str,$link_ID); //送出發(fā)言到數(shù)據(jù)庫 
  14.   mysql_close($link_ID); 
  15.  } 
  16. ?> 
  17. //輸入發(fā)言的表單 
  18.  代碼如下   復(fù)制代碼 
  19. <form action=”speak.php” method=”post” target=” _self”> 
  20.  <input type=”text” name=”words” cols=”20”> 
  21.  <input type=”submit” value=”發(fā)言”> 
  22. </form> 
  23. </body> 
  24. </html> 

完成以上工作后,一個簡單的聊天室制作就完成了.

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 周口市| 双鸭山市| 祁连县| 泸州市| 白河县| 那曲县| 疏勒县| 广南县| 康乐县| 和林格尔县| 临沂市| 英德市| 南澳县| 陆良县| 长宁县| 南岸区| 昌乐县| 怀安县| 荔波县| 馆陶县| 湘阴县| 镇江市| 陵水| 九江市| 武冈市| 武平县| 台北县| 江西省| 蕲春县| 永顺县| 马尔康县| 闽清县| 永新县| 七台河市| 靖边县| 浠水县| 休宁县| 广东省| 新安县| 曲水县| 郸城县|