用PHP MySQL搭建聊天室

2021-06-19 08:23:19 字數 2927 閱讀 8570

mysql併發能力強、響應速度快,是效能優異的資料庫軟體;php是功能強大的伺服器端指令碼語言。筆者在山西鋁廠**開發中,採用 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網頁

<html>

<head>

<title>使用者登入</title>

</head>

<body>請輸入您的暱稱<br>

<form action=」main.php」 method=」post」 target=」_self」>

<input type=」text」 name=」nick」 cols=」20」>

<input type=」submit」 value=」登入」>

</body>

</html>

使用者提交自己的暱稱後,就進入到聊天室,以下的處理交由main.php處理。

2.2 頁框主體**段main.php:

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

?><html>

<title>山西鋁廠聊天室試用版ver1.0</title>

<frameset rows=」80%,*」>

<frame src=」 cdisplay.php」 name=」chatdisplay」>

<frame src=」speak.php」 name=」speak」>

</frameset>

</html>

2.3 顯示發言cdisplay.php

本**段的任務是將表chat中的資料取出,顯示在頁框中。每次重新整理時,取資料庫中最近的 15條發言。同時,為防止資料庫無限增大,需設計刪除陳舊資料的功能。**如下

<html>

<head>

<title>顯示使用者發言</title>

//鏈結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 ($rows<15) $l=$rows; else $l=15; //記錄總數小於15,則最多為該記錄數

for ($i=1;$i<=$l;$i++)

//清除庫中過時的資料

@mysql_data_seek($result,$rows-20); //移動記錄指標到前20筆記錄

list($limtime)=mysql_fetch_row($result);

$str=」delete from chat where chtime<』$limtime』 ;」 ;

$result=mysql_query($str,$link_id); //送出查詢字串,庫中只留前20個記錄

mysql_close($link_id);

?></body>

</html>

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

<html>

<head>

<title>發言</title>

</head>

<body>

<?if ($words)

?>//輸入發言的表單

<form action=」speak.php」 method=」post」 target=」 _self」>

<input type=」text」 name=」words」 cols=」20」>

<input type=」submit」 value=」發言」>

</form>

</body>

</html>

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

mysql 聊天室 聊天室php mysql 六

聊天室php mysql 六 相應的 資料庫 phpmyadmin mysql dump 主機 localhost 3306 資料庫 study28 資料表的結構 chat user create table chat user userid varchar 20 not null,passwd v...

聊天室php mysql 二

第二頁面 name frame2.php include signup mysql.php header expires sun,28 dec 1997 09 32 45 gmt header cache control no cache,must revalidate header pragma ...

聊天室php mysql 一

第乙個頁面 name index1.php include signup mysql.php time1 time userid 983530409 echo n if n 1 if n 983530409 php?userid scrolling auto php?userid php?useri...