午夜剧场伦理_日本一道高清_国产又黄又硬_91黄色网战_女同久久另类69精品国产_妹妹的朋友在线

您的位置:首頁技術文章
文章詳情頁

基于PHP+MySQL的聊天室設計

瀏覽:17日期:2023-12-26 11:18:31

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

1、總體設計

1. 1 構思與規(guī)劃:

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

1.2 表設計

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

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

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

1.3 網(wǎng)頁設計

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

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

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

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

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

2 、代碼設計

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

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

<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='http://www.leifengta.com.cn/bcjs/ cdisplay.php' name='chatdisplay'><frame src='http://www.leifengta.com.cn/bcjs/speak.php' name='speak'></frameset></html>

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

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

<html><head><title>顯示用戶發(fā)言</title><meta http-equiv='refresh' content='5;url=cdisplay.php'></head><body><?$link_ID=mysql_connect('main','root');//鏈接Mysql服務器 服務器名為main,管理員名為rootmysql_select_db('abc'); //選擇數(shù)據(jù)庫$str='select * from chat ORDER BY chtime;' ; //查詢字符串$result=mysql_query($str, $link_ID); //送出查詢$rows=mysql_num_rows($result); //取得查詢結果的記錄筆數(shù)//取得最后15筆發(fā)言,并顯示@mysql_data_seek($resut,$rows-15); //移動記錄指針到前15筆記錄if ($rows<15) $l=$rows; else $l=15; //記錄總數(shù)小于15,則最多為該記錄數(shù)for ($i=1;$i<=$l;$i++) {list($chtime,$nick,$words)=mysql_fetch_row($result);echo $chtime; echo ' ';echo $nick; echo':' ; echo $words; echo '<BR>';}//清除庫中過時的數(shù)據(jù)@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 送出發(fā)言到數(shù)據(jù)庫speak.php

<html><head><title>發(fā)言</title></head><body><?If ($words){ $link_ID=mysql_connect('main','root');mysql_select_db('abc'); //數(shù)據(jù)庫名為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); //送出發(fā)言到數(shù)據(jù)庫mysql_close($link_ID);}?>//輸入發(fā)言的表單<form action='speak.php' method='post' target=' _self'><input type='text' name='words' cols='20'><input type='submit' value='發(fā)言'></form></body></html>

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

標簽: PHP
主站蜘蛛池模板: 色伊人影院 | 亚洲精品中文字幕在线 | 激情久久久久 | 午夜九九| 美女三级黄色片 | 可以看毛片的网站 | 在线观看免费黄色 | 亚洲欧美自拍一区 | 国产精品美女久久久久久 | 日韩一页 | 撕开她情趣内裤让她呻吟视频 | 免费国产一区二区三区 | 亚洲第一网址 | 色天堂影院| 亚洲日本视频在线观看 | 国产亚洲精品久久久 | 国产在线视频一区二区三区 | 久久成人一区 | 国产免费一区二区三区在线观看 | 黄网站在线免费看 | 精品综合久久 | 亚洲淫片 | 婷婷色在线观看 | 国产午夜手机精彩视频 | 国产日产欧美一区二区 | 国产精品久草 | 免费日韩欧美 | 色av影院 | 国产精品色悠悠 | 激情网站在线 | 亚洲一区二区在线看 | 亚洲一区二区三区在线免费观看 | 日本欧美视频 | 天堂网av手机版 | av一区三区| 午夜欧美在线 | 伊人久久青青草 | 在线免费看黄色片 | 亚洲精品影片 | 欧美激情 亚洲 | 国产精品自产拍在线观看 |