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


Posted in PHP onJanuary 05, 2016

本文实例讲述了简单的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程序设计有所帮助。

PHP 相关文章推荐
php 之 没有mysql支持时的替代方案
Oct 09 PHP
php 小乘法表实现代码
Jul 16 PHP
PHP简洁函数小结
Aug 12 PHP
php 保留字列表
Oct 04 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
PHP迭代器的内部执行过程详解
Nov 12 PHP
php的hash算法介绍
Feb 13 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
PHP智能识别收货地址信息实例
Jan 05 PHP
php设计模式之单例模式用法经典示例分析
Sep 20 PHP
PHP执行系统命令函数实例讲解
Mar 03 PHP
基于PHP实现简单的随机抽奖小程序
Jan 05 #PHP
详解WordPress开发中的get_post与get_posts函数使用
Jan 04 #PHP
使用PHP实现微信摇一摇周边红包
Jan 04 #PHP
解析WordPress中的post_class与get_post_class函数
Jan 04 #PHP
WordPress开发中的get_post_custom()函数使用解析
Jan 04 #PHP
在WordPress中安装使用视频播放器插件Hana Flv Player
Jan 04 #PHP
详解WordPress中分类函数wp_list_categories的使用
Jan 04 #PHP
You might like
WordPress主题中添加文章列表页页码导航的PHP代码实例
2015/12/22 PHP
PHP7.1实现的AES与RSA加密操作示例
2018/06/15 PHP
Thinkphp页面跳转设置跳转等待时间的操作
2019/10/16 PHP
Prototype使用指南之dom.js
2007/01/10 Javascript
Javascript算符的优先级介绍
2013/03/20 Javascript
JS随机生成不重复数据的实例方法
2013/07/17 Javascript
js中的如何定位固定层的位置
2014/06/15 Javascript
jQuery动画出现连续触发、滞后反复执行的解决方法
2015/01/28 Javascript
JavaScript使用cookie实现记住账号密码功能
2015/04/27 Javascript
Javascript aop(面向切面编程)之around(环绕)分析
2015/05/01 Javascript
利用jQuery实现漂亮的圆形进度条倒计时插件
2015/09/30 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
jQuery插件ajaxfileupload.js实现上传文件
2020/10/23 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
js实时获取窗口大小变化的实例代码
2016/11/18 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
解决JS内存泄露之js对象和dom对象互相引用问题
2017/06/25 Javascript
js 公式编辑器 - 自定义匹配规则 - 带提示下拉框 - 动态获取光标像素坐标
2018/01/04 Javascript
Angular 容器部署的方法
2018/04/17 Javascript
微信小程序实现左右联动的实战记录
2018/07/05 Javascript
vue.js与后台数据交互的实例讲解
2018/08/08 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
2018/12/05 Javascript
javascript实现拼图游戏
2021/01/29 Javascript
[04:48]DOTA2上海特锦赛小组赛第三日 TOP10精彩集锦
2016/02/28 DOTA
python的scikit-learn将特征转成one-hot特征的方法
2018/07/10 Python
Python HTML解析模块HTMLParser用法分析【爬虫工具】
2019/04/05 Python
Python 调用 Outlook 发送邮件过程解析
2019/08/08 Python
在 Windows 下搭建高效的 django 开发环境的详细教程
2020/07/27 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
python爬虫用request库处理cookie的实例讲解
2021/02/20 Python
英国剑桥包官网:The Cambridge Satchel Company
2016/08/01 全球购物
美国折扣网站:jClub
2017/08/07 全球购物
大学生毕业求职简历的自我评价
2013/10/24 职场文书
文明家庭先进事迹材
2014/01/27 职场文书
公司联欢会策划方案
2014/05/19 职场文书
SQL SERVER实现连接与合并查询
2022/02/24 SQL Server