Design an Online Chat Room with PHP and MySQL!
|
| by Rory Canyon |
|
|
|
In this article, you will learn how
to design and develop a simple online chat room with PHP
and MySQL. This tutorial explains every steps of the
development, including both database design and PHP
programming. Basic computer skills and knowledge of HTML
and PHP are required. Ok, let's begin now.
Step 1: Design Database Table. Create table
"chat" in MySQL database to store basic chat
information: chtime (chat time), nick (user nickname) and
words (chat message, less than 150 characters)
mysql> CREATE TABLE chat
-> chtime DATATIME,
-> nick CHAR (10) NOT NULL,
-> words CHAR (150);
Step 2: Design Structure. This simple online chat room
includes the following four sections: user login, message
display, message input and a main frame integrating the
display and input sections. Thus, it needs the following
four files to work: login.php, main.php, display.php and
speak.php.
Step 3: Write the code
1. login.php (just a HTML form)
<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
This file is used to get message records from database and
display the results. To keep the size of database, old
messages are deleted and only the newest 15 messages are
displayed.
<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>
Now, you have finished the design and coding of a simple
online chat system. Put all the files into your website
root and see how it works, :)
|
|
|
| About
the Author: Rory Canyon is the founder of
ScriptMenu.com, a free web directory for PHP,
ASP, ASP.NET, PERL, XML, Java, JavaScript, Flash, CFML,
Python and other web programming resources. For
more information, visit http://www.scriptmenu.com |
|
|
|

|
Create
PDF eBooks Instantly!
Still No PDF Download
Option For Your Customers Because Your Brain Just Shrivels
Up When You Try To Buy/Use Adobe Acrobat software?
Now, You Can Point And Click Your
Way To Instant, Hassle-Free PDF Publishing ... Using One
of The 33 Free To Nearly Free Tools!
Order Now and Receive Master
Resell Rights, Keep 100% of The Profits!
(This Offer May End At Any Time)
|
|
|
|
Easy
PDF Publisher's Toolkit
Create
PDF Files From Any Printable Document in a Few Simple
Clicks!
"Finally
There's an EASY Way To
Publish Stunning PDF Files,
Without Wasting a Lot of Time and Money"
|

|
|
|
|
|
|
|
|
 |
Translate
Page!
    |
|
|
|
|
|
|
|
|
|
|
|
|
|

|
|
|

|
|
|
|
|
|
Newsletter |
|
Sign-Up for The Business
Junction Newsletter and Get "FREE" Newsletter Sign-Up Software, Specials Updates, Product
Updates and MUCH MORE! |
|
|
|
|
|
|
|
|