チャット ルームを実装できるプログラムは数多くありますが、原理は単純で、更新せずに実装できます。最も単純なものは、iframe を使用してページを常に更新し、データベースからユーザーのレコードを読み取ることです。
MySQL は強力な同時実行性と高速な応答速度を備え、優れたパフォーマンスを備えたデータベース ソフトウェアです。PHP は強力なサーバーサイド スクリプト言語です。山西アルミニウム工場の Web サイト開発では、筆者は PHP4.0+MySQL3.23.38 を使用してさまざまなアプリケーションを構築しました。次に、単純なチャット ルームのデザインを例として、Web 開発における PHP + MySQL のアプリケーションを紹介します。
1.全体デザイン
1.1 構想と計画:
チャットルームの基本原理は、同じWebページに接続している各ユーザーが送信した音声データを保存し、すべての音声データを各ユーザーに送信することです。つまり、チャットルームの機能は、全員の発言をデータベースに収集し、データベース内のデータを全員に送信することで実現されます。
1.2 テーブルデザイン
まず、MySQL を使用して、ユーザー コメントを保存するためのテーブル チャットを作成します。
コードは次のとおりです | コードをコピー |
mysql> CREATE TABLE チャット |
テーブルに設定されるフィールドは 3 つだけです。chtime は発言時間、nick は発言者のニックネーム、words は発言内容、発言は最大 150 文字です
1.3 Webデザイン
最も単純なチャット ルームには、通常 2 つのページ フレームが必要です。1 つのページ フレームはユーザーがコメントを入力するためのフォームで、もう 1 つは全員のコメントを表示するために使用されます。したがって、コード スニペットには通常、少なくとも次のセグメントが必要です:
ページフレーム(main.php)の構造を作成します
全員が発言する番組部分を表示(cdisplay.php)
ユーザーが話す番組部分(speak.php)を送信します
チャットルームプログラムセグメント(login.php)に入るためにユーザーがログインします
2. コード設計
上記の計画が完了したら、PHPを使用すると上記の機能を非常に簡単に実現できます。
2.1 ユーザーログインlogin.php、このコードは完全なHTML Webページです
コードは次のとおりです | コードをコピー |
<html> <頭> <title>ユーザーログイン</title> </頭> <本文>ニックネームをご入力ください<br> <form action=”main.php” Method=”post” target=”_self”> <input type=”text” name=”nick”cols=”20”> <入力タイプ=”送信” 値=”ログイン”> </本文> </html> |
ユーザーがニックネームを送信した後、チャットルームに入室すると、以下の処理が main.php によって処理されます。
2.2 ページフレームのメインコード部分 main.php:
コードは次のとおりです | コードをコピー |
<? <html> |
2.3 音声表示 cdisplay.php
このコードセグメントのタスクは、チャットテーブルからデータを取り出してページフレームに表示することです。更新されるたびに、データベース内の最新の 15 個のステートメントがフェッチされます。同時に、データベースが無制限に増大しないように、古いデータを削除する機能を設計する必要があります。コードは次のとおりです
コードは次のとおりです | コードをコピー |
<html> <頭> <title>ユーザーコメントを表示</title> <meta http-equiv=”refresh” content=”5;url=cdisplay.php”> </頭> <本体> <? $link_ID=mysql_connect("メイン","ルート"); //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++) { list($chtime,$nick,$words)=mysql_fetch_row($result); echo $chtime; echo " ";echo $nick; echo":" ; echo " "; } //ライブラリ内の古いデータを消去します @mysql_data_seek($result,$rows-20); //レコードポインタを最初の 20 レコードに移動します list($limtime)=mysql_fetch_row($result); $str=”チャット WHERE から削除 chtime<’$limtime’ ; ” $result=mysql_query($str,$link_ID); //最初の 20 レコードのみをライブラリに残してクエリ文字列を送信します mysql_close($link_ID); ?> </本文> </html> |
2.4 音声をデータベースspeak.phpに送信する
コードは次のとおりです | コードをコピー |
<html> <頭> </頭> <本体> <? もし ($words) { $link_ID=mysql_connect("main","root"); mysql_select_db("abc"); //データベース名はabc です $time=date(y).date(m).date(d).date(h).date(i).(date(s); // 現在時刻を取得します $str=”チャット(chtime,nick,words)値に挿入 ('$タイム','$ニック','$ワード');” mysql_query($str,$link_ID); // ステートメントをデータベースに送信します mysql_close($link_ID); } ?> |
コードをコピー | |
<form action=”speak.php” method=”post” target=”_self”>
<input type=”text” name=”words”cols=”20”> |
以上の作業が完了すると、簡易チャットルームが完成します