ホームページ  >  記事  >  バックエンド開発  >  PHP+MySQL を使用してチャット ルーム関数のサンプル コードを構築する_PHP チュートリアル

PHP+MySQL を使用してチャット ルーム関数のサンプル コードを構築する_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:17:23857ブラウズ

以下に、Web 開発における PHP+MySQL の応用を紹介するための簡単なチャット ルームのデザインを例に挙げます

1. 全体のデザイン

1.1 構想と計画:
チャット ルームの基本原則は、それぞれを接続することです。同一Webページ上でユーザーが送信した音声データを蓄積し、すべての音声データを各ユーザーに送信します。つまり、チャットルームの機能は、全員の発言をデータベースに収集し、データベース内のデータを全員に送信することで実現されます。
1.2 テーブル設計
まず、MySQL を使用して、ユーザーのコメントを保存するテーブル チャットを作成します:

コードをコピーします: コードは次のとおりです:
mysql> (chtime DATATIME,
- > nick CHAR(10) NOT NULL,
->words CHAR(150)); テーブルに設定されているフィールドは 3 つだけです。chtime はスピーチの時間、nick は発言者のニックネームです。そして言葉はスピーチの内容です スピーチの最大長は 150 文字です
1.3 Web デザイン
最も単純なチャット ルームには通常 2 つのページ フレームが必要です。1 つのページ フレームはユーザーがコメントを入力するためのフォームです。全員のスピーチを表示するために使用されます。したがって、コードセグメントには通常、少なくとも以下のセグメントが必要です:
ページフレームの構造を作成する(main.php)
全員の発言を表示するプログラムセグメント(cdisplay.php)
ユーザーの発言を伝達するプログラムセグメント(speak) .php)
ユーザーはチャットルームプログラムセグメント(login.php)にログインします


2. コード設計


上記の計画が完了したら、phpを使用して上記の機能を非常に実現することができます。単に。
2.1 ユーザーログインlogin.php、このコードは完全なHTML Webページです

コードは次のとおりです:


;/title> <u></head> </u><body> ニックネームを入力してください<br> </span><form action=”post” target=”_self”> = ”text” name=”nick” cols=”20”> <input type=”submit” value=”Login”> </div></html> own ニックネームを入力後、チャットルームに入り、以下の処理はmain.phpで行われます。 <div class="codebody" id="code759"> 2.2 ページフレームのメインコードセグメント main.php: <br><br><br><br>コードをコピー<br><br> コードは次のとおりです:<br><br> <br>< <br>setcookie("nick",$nick) //Cookie を使用してユーザーのニックネームを記録します。よく使われる転送方法です <br>?> </div><html> <br><title>山西アルミニウム工場チャットルーム試用版 ver1.0

2.3 Show speech cdisplay. php このコードセグメントのタスクは、チャットテーブルからデータを取り出してページフレームに表示することです。更新されるたびに、データベース内の最新の 15 個のステートメントがフェッチされます。同時に、データベースが無制限に増大しないように、古いデータを削除する機能を設計する必要があります。コードは次のとおりです
コードをコピーします

コードは次のとおりです:


;ユーザーコメントを表示
/head>

$link_ID=mysql_connect("main","root")
//リンクされた Mysql サーバーの名前は root です
mysql_select_db(" " ; result); //クエリ結果のレコード数を取得
//コメントの最後の15件を取得して表示
@mysql_data_seek($resut,$rows-15); //レコードポインタを最初の15件に移動records
if ($ rows です。for ($i=1;$ i<=$l;$i++) {
list ($chtime,$nick,$words)=mysql_fetch_row($result);
echo $chtime; echo " ";echo $nick"; ; echo “
”;
}
//ライブラリ内の古いデータをクリアします
@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);以下:

Speak</head> <br><? $link_ID= mysql_connect("main","root"); <BR> mysql_select_db("abc ”); //データベース名は abc です <BR> $time=date(y).date(m).date(d).date(h) date(i).(date(s); //現在時刻を取得します<BR> $str="INSERT INTO chat(chtime,nick,words) 値<BR> ('$time','$nick','$words ');" ; <BR> mysql_query($str,$link_ID); //データベースにステートメントを送信<BR> mysql_close($link_ID); <BR> } <BR>?> </div>//音声入力フォーム<br><form action=”speak. php” method=”post” target=” _self”> <br> <input type= ”text” name=”words”cols=”20”> <input type=”submit” value=”Speak”> ; <div class="codetitle"></form> <span style="CURSOR: pointer" onclick="doCopy('code99690')"></html> <u> </u> 以上の作業が完了すると、簡単なチャットルームが完成します。もちろん、デザイナーは、現在のチャット ルーム メンバーのリストを表示するページ フレームの追加、話す絵文字の追加、発言者の IP の取得、ページのさらなる美化など、個人の好みに基づいてパーソナライズされたデザインを作成できます。 </span> </div> <div class="codebody" id="code99690"> <br>http://www.bkjia.com/PHPjc/325728.html<br><br>www.bkjia.com<br><br>tru​​e<br><br>http://www.bkjia.com/PHPjc/325728.html<br><br>技術記事<br><br>以下では、Web 開発における PHP + MySQL のアプリケーションを紹介するために、簡単なチャット ルームのデザインを例に挙げます。 1. 全体的なデザイン 1.1 コンセプトと計画: チャット ルームの基本原則は、それぞれを接続することです...<br><br><br> <br> <br><br> </div> </div></div><div class="nphpQianMsg"><div class="clear"></div></div><div class="nphpQianSheng"><span>声明:</span><div>この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。</div></div></div><div class="nphpSytBox"><span>前の記事:<a class="dBlack" title="PHP の実行速度を向上させるためのヒントを共有する_PHP チュートリアル" href="http://m.php.cn/ja/faq/308413.html">PHP の実行速度を向上させるためのヒントを共有する_PHP チュートリアル</a></span><span>次の記事:<a class="dBlack" title="PHP の実行速度を向上させるためのヒントを共有する_PHP チュートリアル" href="http://m.php.cn/ja/faq/308415.html">PHP の実行速度を向上させるためのヒントを共有する_PHP チュートリアル</a></span></div><div class="nphpSytBox2"><div class="nphpZbktTitle"><h2>関連記事</h2><em><a href="http://m.php.cn/ja/article.html" class="bBlack"><i>続きを見る</i><b></b></a></em><div class="clear"></div></div><ul class="nphpXgwzList"><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/1.html" title="cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法" class="aBlack">cURL を使用して PHP で Get リクエストと Post リクエストを実装する方法</a><div class="clear"></div></li><li><b></b><a href="http://m.php.cn/ja/faq/2.html" title="正規表現内のすべての式記号 (概要)" class="aBlack">正規表現内のすべての式記号 (概要)</a><div class="clear"></div></li></ul></div></div><div class="nphpFoot"><div class="nphpFootBg"><ul class="nphpFootMenu"><li><a href="http://m.php.cn/ja/"><b class="icon1"></b><p>ホームページ</p></a></li><li><a href="http://m.php.cn/ja/course.html"><b class="icon2"></b><p>コース</p></a></li><li><a href="http://m.php.cn/ja/wenda.html"><b class="icon4"></b><p>に質問</p></a></li><li><a href="http://m.php.cn/ja/login"><b class="icon5"></b><p>私の</p></a></li><div class="clear"></div></ul></div></div><div class="nphpYouBox" style="display: none;"><div class="nphpYouBg"><div class="nphpYouTitle"><span onclick="$('.nphpYouBox').hide()"></span><a href="http://m.php.cn/ja/"></a><div class="clear"></div></div><ul class="nphpYouList"><li><a href="http://m.php.cn/ja/"><b class="icon1"></b><span>ホームページ</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/course.html"><b class="icon2"></b><span>コース</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/article.html"><b class="icon3"></b><span>記事</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/wenda.html"><b class="icon4"></b><span>に質問</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/dic.html"><b class="icon6"></b><span>辞書</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/course/type/99.html"><b class="icon7"></b><span>マニュアル</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/xiazai/"><b class="icon8"></b><span>ダウンロード</span><div class="clear"></div></a></li><li><a href="http://m.php.cn/ja/faq/zt" title="特集"><b class="icon12"></b><span>特集</span><div class="clear"></div></a></li><div class="clear"></div></ul></div></div><div class="nphpDing" style="display: none;"><div class="nphpDinglogo"><a href="http://m.php.cn/ja/"></a></div><div class="nphpNavIn1"><div class="swiper-container nphpNavSwiper1"><div class="swiper-wrapper"><div class="swiper-slide"><a href="http://m.php.cn/ja/" >ホームページ</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/article.html" class="hover">記事</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/wenda.html" >に質問</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/course.html" >コース</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/faq/zt" >特集</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/xiazai" >ダウンロード</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/game" >ゲーム</a></div><div class="swiper-slide"><a href="http://m.php.cn/ja/dic.html" >辞書</a></div><div class="clear"></div></div></div><div class="langadivs" ><a href="javascript:;" class="bg4 bglanguage"></a><div class="langadiv" ><a onclick="javascript:setlang('zh-cn');" class="language course-right-orders chooselan " href="javascript:;"><span>简体中文</span><span>(ZH-CN)</span></a><a onclick="javascript:setlang('en');" class="language course-right-orders chooselan " href="javascript:;"><span>English</span><span>(EN)</span></a><a onclick="javascript:setlang('zh-tw');" class="language course-right-orders chooselan " href="javascript:;"><span>繁体中文</span><span>(ZH-TW)</span></a><a onclick="javascript:;" class="language course-right-orders chooselan chooselanguage" href="javascript:;"><span>日本語</span><span>(JA)</span></a><a onclick="javascript:setlang('ko');" class="language course-right-orders chooselan " href="javascript:;"><span>한국어</span><span>(KO)</span></a><a onclick="javascript:setlang('ms');" class="language course-right-orders chooselan " href="javascript:;"><span>Melayu</span><span>(MS)</span></a><a onclick="javascript:setlang('fr');" class="language course-right-orders chooselan " href="javascript:;"><span>Français</span><span>(FR)</span></a><a onclick="javascript:setlang('de');" class="language course-right-orders chooselan " href="javascript:;"><span>Deutsch</span><span>(DE)</span></a></div></div><script> var swiper = new Swiper('.nphpNavSwiper1', { slidesPerView : 'auto', observer: true,//修改swiper自己或子元素时,自动初始化swiper observeParents: true,//修改swiper的父元素时,自动初始化swiper }); </script></div></div><!--顶部导航 end--><script>isLogin = 0;</script><script type="text/javascript" src="/static/layui/layui.js"></script><script type="text/javascript" src="/static/js/global.js?4.9.47"></script></div><script src="https://vdse.bdstatic.com//search-video.v1.min.js"></script><link rel='stylesheet' id='_main-css' href='/static/css/viewer.min.css' type='text/css' media='all'/><script type='text/javascript' src='/static/js/viewer.min.js?1'></script><script type='text/javascript' src='/static/js/jquery-viewer.min.js'></script><script>jQuery.fn.wait = function (func, times, interval) { var _times = times || -1, //100次 _interval = interval || 20, //20毫秒每次 _self = this, _selector = this.selector, //选择器 _iIntervalID; //定时器id if( this.length ){ //如果已经获取到了,就直接执行函数 func && func.call(this); } else { _iIntervalID = setInterval(function() { if(!_times) { //是0就退出 clearInterval(_iIntervalID); } _times <= 0 || _times--; //如果是正数就 -- _self = $(_selector); //再次选择 if( _self.length ) { //判断是否取到 func && func.call(_self); clearInterval(_iIntervalID); } }, _interval); } return this; } $("table.syntaxhighlighter").wait(function() { $('table.syntaxhighlighter').append("<p class='cnblogs_code_footer'><span class='cnblogs_code_footer_icon'></span></p>"); }); $(document).on("click", ".cnblogs_code_footer",function(){ $(this).parents('table.syntaxhighlighter').css('display','inline-table');$(this).hide(); }); $('.nphpQianCont').viewer({navbar:true,title:false,toolbar:false,movable:false,viewed:function(){$('img').click(function(){$('.viewer-close').trigger('click');});}}); </script></body></html>