スポンサー


    ウェブデザイン基礎講座

    フォトショップ講座

    HTML&CSS講座

    グラフィック講座

    Flash講座

    3D講座

    ウェブプログラミング講座

    サイトメンテナンス講座

    サイト紹介

    スペシャルリンク

サイト内検索

 メールマガジン

テクニック

Homeウェブプログラミング > PHPとMySQLを使ったオンラインチャットシステム

PHPとMySQLを使ったオンラインチャットシステム

投稿日:2006年12月12日   レベル:初心者    ソフトウェア:PHP Editors
program_8028_1.jpg 本投稿ではPHPとMySQLを利用した簡単なオンラインチャットルームの設計と開発について教えます. このチュートリアル内でPHPプログラミングとデーターベースデザインの両方を含む各開発工程について説明を行います. HTMLとPHPに関する知識と一般的なコンピュータ操作の技術を必要とします. それでははじめましょう.



Step1 − データーベーステーブルの設計
チャットで必要とされる標準的な情報(chtime: チャット時間, nick: ユーザー毎のニックネーム, words: チャットメッセージ. 150文字以内)をMySQL内に"chat" テーブルを作り, 保存ができるようにします. mysql> CREATE TABLE chat
-> chtime DATATIME,
-> nick CHAR (10) NOT NULL,
-> words CHAR (150);


Step1 − 構造設計
ここで作成する簡易オンラインチャットシステムは次のような4セッションを有するものにします. ユーザーログインセッション, メッセージディスプレイセッション, メッセージインプットセッションとディスプレイとインプットをあわせたメインフレームセッションの4つです. ここから次の4ファイルを作成し, 作業を行います. Login.php, main.php, display.php そして speak.phpの4つを作成します.

Step3 − コーディング
1. login.php(HTMLフォーム)
<html>
<head>
<title>User Login</title>
</head>
<body>
Please input your nickname and enter
<form action="main.php" method="post" target="_self">
<input type="text" name="nick" cols="20">
<input type="submit" value="login">
</form>
</body>
</html>


2. main.php
<?
setcookie("nick",$nick) //use cookie to store user nickname
?>
<html>
<title>My Chat Room</title>
<frameset rows="80%,*">
<frame src="display.php" name="chatdisplay">
<frame src="speak.php" name="speak">
</frameset>
</html>


3. display.php
このファイルではデータベースからメッセージの記録を読み出し, 結果を表示させるために使用します. データベースの容量を抑えるために, 最新の15件のメッセージを表示し, 古いメッセージを削除することにします. <html>
<head>
<title>Display Messages</title>
<meta http-equiv="refresh" content="5;url=display.php">
</head>
<body>
<?
//connect to mysql server, server name: main, database username: root
$link_ID=mysql_connect("main","root");
mysql_select_db("abc"); //abc is the database name
$str="select * from chat ORDER BY chtime;" ;
$result=mysql_query($str, $link_ID);
$rows=mysql_num_rows($result);
//get the latest 15 messages
@mysql_data_seek($resut,$rows-15);
//if the number of messages<15, get all of the messages
if ($rows<15) $l=$rows; else $l=15; for ($i=1;$i<=$l; $i++) {
list($chtime, $nick, $words)=mysql_fetch_row($result);
echo $chtime; echo " "; echo $nick; echo":" ; echo $words; echo "
";
} //delete the old messages(only keep the newest 20 only)
@mysql_data_seek($result,$rows-20);
list($limtime)=mysql_fetch_row($result);
$str="DELETE FROM chat WHERE chtime<'$limtime' ;" ;
$result=mysql_query($str,$link_ID);
mysql_close($link_ID);
?>
</body>
</html>


4. speak.php
<html>
<head>
<title>Speak</title>
</head>
<body>
<?
If ($words)
{ $link_ID=mysql_connect("main","root");
mysql_select_db("abc"); // abc is the database name
$time=date(y).date(m).date(d).date(h).date(i).(date(s); //get current time
$str="INSERT INTO chat(chtime,nick,words) values ('$time','$nick','$words');" ;
mysql_query($str,$link_ID); //save message record into database
mysql_close($link_ID); )
?>
//the following is the message input form
<form action="speak.php" method="post" target=" _self">
<input type="text" name="words" cols="20">
<input type="submit" value="Speak">
</form>
</body>
</html>


これであなたは簡易オンラインチャットシステムの設計と構築を終えたことになります. あなたのサイトにこれらのファイルをアップロードしその動作を確認してください.

引用:Web Design Library 著者:Rory Canyon翻訳:atuk



スポンサードリンク

コメント

ランダム記事5件

2016年5月の人気記事ランキング