简单的php+mysql聊天室实现方法(附源码)

前端技术 2023/09/05 PHP

本文实例讲述了简单的php+mysql聊天室实现方法。分享给大家供大家参考,具体如下:

这里介绍的程序分为 8 个文件:

frameset框架页面:index.php

显示聊天室内容页:show.php

用户登陆页面:login.php

用户发言页面:speak.php

数据库配置文件:config.php

页面美化样式:style.css

数据库文件:chat.sql

发言表情包:face/

分别介绍如下:

一、数据库文件chat.sql如下:

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `chat`
-- ----------------------------
DROP TABLE IF EXISTS `chat`;
CREATE TABLE `chat` (
 `chtime` datetime default NULL,
 `nick` char(10) NOT NULL,
 `words` char(150) default NULL,
 `face` int(11) default NULL
) ENGINE=InnoDB DEFAULT CHARSET=gb2312;
-- ----------------------------
-- Records of chat
-- ----------------------------
INSERT INTO chat VALUES (\'2013-03-21 04:15:14\', \'smiling\', \'测试显示发言\', \'3\');
INSERT INTO chat VALUES (\'2013-03-21 04:46:26\', \'smiling\', \'时间有问题,\', \'5\');
INSERT INTO chat VALUES (\'2013-03-21 04:47:28\', \'php新手\', \'新手来了。\', \'1\');
INSERT INTO chat VALUES (\'2013-03-21 04:55:19\', \'php新手\', \'显示正确啦\', \'6\');
INSERT INTO chat VALUES (\'2013-03-21 17:12:47\', \'php新手\', \'正确显示时间\', \'5\');
INSERT INTO chat VALUES (\'2013-03-21 17:23:19\', \'php新手\', \'时间显示正确。\', \'7\');
INSERT INTO chat VALUES (\'2013-03-21 17:23:29\', \'php新手\', \'哈哈\', \'1\');
INSERT INTO chat VALUES (\'2013-03-22 08:28:00\', \'\', \'今天再来看看。\', \'3\');

二、框架页面如下:

<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />
<title>简单的php+mysql聊天室--框架页</title>
</head>
<frameset rows=\"*,80\" cols=\"*\" framespacing=\"0\" bordercolor=\"#E1D1AE\">
 <frameset rows=\"*\" cols=\"*,284\">
  <frame src=\"show.php\" name=\"mainFrame\"/>
  <frame src=\"login.php\" name=\"rightFrame\"/>
 </frameset>
 <frame src=\"speak.php\" name=\"bottomFrame\"/>
</frameset>
<noframes><body>
</body>
</noframes>
</html>

三、用户登陆页面login.php如下:

<html>
<head>
<title>简单的php+mysql聊天室--登陆页</title>
<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" />
</head>
<body>
<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
 <tr>
  <td> </td>
 </tr>
</table>
<table width=\"250\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" bgcolor=\"#CBB486\">
 <tr>
  <td height=\"30\" align=\"center\" bgcolor=\"#F5E6C1\">
    <?php 
    if($_GET[\"tj\"] == \"out\"){
    setcookie (\"nick\", \"\", time() - 3600);
    header(\"refresh:0; URL=\'login.php\'\");
    }
    if($_POST[\"submit\"]){
    setcookie(\"nick\",$nick); //用cookie记录用户昵称,也可以用SESSION
    header(\"refresh:0; URL=\'login.php\'\");
    }
    ?>
    <?php if($_COOKIE[\"nick\"]){echo \"欢迎您 \".$_COOKIE[\"nick\"].\" <a href=?tj=out>退出房间</a>\";}else{echo \"请输入您的昵称\";}?></td>
 </tr>
 <tr>
  <td bgcolor=\"#F5E6C1\">
<form action=\"\" method=\"post\">
<input type=\"text\" name=\"nick\" cols=\"20\">
<input type=\"submit\" name=\"submit\" value=\"登录\">
</form></td>
 </tr>
</table>
<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
 <tr>
  <td> </td>
 </tr>
</table>
<table width=\"250\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" bgcolor=\"#CBB486\">
 <tr>
  <td height=\"70\" bgcolor=\"#F5E6C1\" class=\"login\">程序说明:因本聊天室是作者仅花了一天时间而写的程序,所以仅适合新手练习研究,高手可以进行绕行,新手可以在本基础上进行增加发言IP和其它字段功能,最主要的是理解本程序的制作原理。欢迎新手朋友加入夏日源码交流群:<SPAN id=\"qid\">101140934</SPAN></td>
 </tr>
</table>
</body>
</html>

四、用户发言页面speak.php如下:

<html>
<head>
<title>简单的php+mysql聊天室--发言页</title>
<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" />
</head>
<body>
<table width=\"80%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">
 <tr>
  <td height=\"2\"></td>
 </tr>
</table>
<form action=\"show.php\" target=\"mainFrame\" method=\"post\">
  发言表情:
<input type=\"radio\" value=\"1\" name=\"face\" checked=\"checked\" />
<img src=\"face/PIC1.GIF\" width=\"20\" height=\"20\" border=\"0\" />
<input type=\"radio\" value=\"2\" name=\"face\" />
<img src=\"face/PIC2.GIF\" width=\"20\" height=\"20\" border=\"0\" />
<input type=\"radio\" value=\"3\" name=\"face\" />
<img src=\"face/PIC3.GIF\" width=\"20\" height=\"20\" border=\"0\" />
<input type=\"radio\" value=\"4\" name=\"face\" />
<img src=\"face/PIC4.GIF\" width=\"20\" height=\"20\" border=\"0\" />
<input type=\"radio\" value=\"5\" name=\"face\" />
<img src=\"face/PIC5.GIF\" width=\"20\" height=\"20\" border=\"0\" />
<input type=\"radio\" value=\"6\" name=\"face\" />
<img src=\"face/PIC6.GIF\" width=\"20\" height=\"20\" border=\"0\" />
<input type=\"radio\" value=\"7\" name=\"face\" />
<img src=\"face/PIC7.GIF\" width=\"20\" height=\"20\" border=\"0\" /> 
<input type=\"text\" name=\"words\" cols=\"20\">
<input type=\"submit\" value=\"发言\">
</form>
</body>
</html>

五、显示聊天室内容页show.php如下:

<?php require_once(\'config.php\'); ?>
<?php
if($words){
$query=\"insert into chat(chtime,nick,words,face)values(now(),\'$nick\',\'$words\',\'$face\')\";//插入SQL语句
mysql_query($query,$link_ID); //发送留言到数据库
header(\"refresh:0; URL=\'show.php\'\"); }
?>
<html>
<head>
<title>简单的php+mysql聊天室--显示留言页</title>
<link href=\"style.css\" rel=\"stylesheet\" type=\"text/css\" />
<meta http-equiv=\"refresh\" content=\"5;url=show.php\">
</head>
<body>
<?php 
    //最新发言显示在最下面
    $sql=\"select * from chat order by chtime asc\";
    $result=mysql_query($sql);
    $total=mysql_num_rows($result);
    $info=($total/15-1)*15;
    if($total<15){
    $str=\"select * from chat order by chtime asc;\" ; //查询字符串
    }else{
    $str=\"select * from chat order by chtime asc limit $info,15;\" ; //查询字符串
    }
     $result=mysql_query($str,$link_ID); //送出查询
     while($row=mysql_fetch_array($result)){
?>
<table width=\"700\" border=\"0\" align=\"center\" cellpadding=\"5\" cellspacing=\"1\" bgcolor=\"#CBB486\">
 <tr>
  <td width=\"33\" align=\"left\" bgcolor=\"#F5E6C1\" class=\"font\">昵称:</td>
  <td width=\"41\" align=\"center\" bgcolor=\"#F5E6C1\" class=\"font\"><?php if($row[nick] == \"\"){echo \"游客\";}else{echo $row[nick];}?></td>
  <td width=\"42\" align=\"center\" bgcolor=\"#F5E6C1\" class=\"font\"><img src=\"face/PIC<?php echo $row[face];?>.GIF\" width=\"20\" height=\"20\"></td>
  <td width=\"56\" align=\"left\" bgcolor=\"#F5E6C1\" class=\"font\">发言内容:</td>
  <td width=\"160\" align=\"left\" bgcolor=\"#F5E6C1\" class=\"font\"><?php echo $row[words];?></td>
  <td width=\"56\" align=\"left\" bgcolor=\"#F5E6C1\" class=\"font\">发言时间:</td>
  <td width=\"244\" align=\"left\" bgcolor=\"#F5E6C1\" class=\"font\"><?php echo $row[chtime];?></td>
 </tr>
</table>
<table width=\"100\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
 <tr>
  <td height=\"5\"></td>
 </tr>
</table>
<?php } ?>
</body>
</html>

完整实例代码点击此处本站下载。

希望本文所述对大家PHP程序设计有所帮助。

本文地址:https://www.stayed.cn/item/14666

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。