本文实例讲述了简单的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
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我