登录  /  注册

php_D3_“简易聊天室 ”实现的关键技术 详解

php中文网
发布: 2016-06-23 13:11:01
原创
1260人浏览过

                     PHP+MySQL实现Internet上一个简易聊天室的关键技术

 系统目标:

聊天室使用数据库汇集每个人的发言,并可将数据库内的发言信息显示在页面,让每个用户都可以看到,具体功能如下:

a.用户登录:用户发言时显示其登录名信息

b.用户发言:用户输入说的话

c.显示发言信息:用户浏览所有发言信息

设计思路:

(1).建立聊天室数据库及相关数据表

(2).实现用户登录页面(login.php)

(3).实现发言页面(speak.php)

(4).实现发言显示页面(chat_display.php)

(5).实现主页面(main.php)

关键技术:

1.自动刷新页面:

如果要想使页面每隔一定时间就自动刷新,其实现方法是在HTML的

与标签之间加上如下语句:

例如:用户来到页面20s后自动跳转至另一页面new.php,

2.传递用户名:

在用户登录进入聊天室后,系统应该一直保留其登录信息,以便其发言时使用,可通过Session来实现。session是一种常用的信息存储机制,在此之间要说明本例中的应用。

(1).在用户登录系统时,需要注册一个session变量来存储其登录名信息:

1 
登录后复制

其中,第2行打开session功能,第3行得到页面表单上用户输入的昵称信息,第4行注册session变量user_name.

(2).在用户发言的页面上,在其发言时,获取session变量user_name,并将其值连同其发言内容存入数据库:

1 
登录后复制

这样,在用户离开系统前,系统将一直利用session来保存登录名信息,可以随时在需要时使用。

3.显示最新发言:

简易聊天室另一个需要解决的问题是,在显示发言信息时,由于发言信息很多,不能将其全部显示出来,而只显示最新的一定数量的发言信息。这可以通过对发言信息按发言时间顺序排序递增,并选择最后的部分发言实现。

下面是在页面显示最新的15条发言信息:

 1 @mysql_data_seek($resut,$rows-15); //移动记录指针到前15笔记录 2 if ($rows<15) 3 $l=$rows; 4 else 5 $l=15; //记录总数小于15,则最多为该记录数 6 for ($i=1;$i<=$l;$i++) //通过循环读取发言信息 7 { 8 list($cid,$author,$create_time,$text)=mysql_fetch_row($result); 9 echo $create_time;10 echo " ";11 echo "【".$author."】";12 echo"说到:" ;13 echo $text;14 echo "
"; //输出留言内容15 }
登录后复制

其中,第1行$result 为查询所有留言得到的记录集,通过mysql_data_seek()命令来移动其记录游标到倒数第15条记录上;然后6~15行输出至多15条发言。

另外,数据库也没必要保留全部用户发言信息,否则会是数据库讯速膨胀。可以使用一个策略:只保留最近一定数量的发言,而把其他过期发言及时删除。

系统实现:

(1).创建数据库:

CREATE DATABASE 'my_chat';

(2).创建chat表:

1 -- 创建chat表:2 CREATE TABLE `chat` (3 `cid` INT NOT NULL AUTO_INCREMENT ,4 `author` VARCHAR( 50 ) NOT NULL ,5 `create_time` TIME NOT NULL ,6 `text` BLOB NOT NULL ,7 PRIMARY KEY ( `cid` ) 8 );
登录后复制

 

来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 技术文章
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2023 //m.sbmmt.com/ All Rights Reserved | 苏州跃动光标网络科技有限公司 | 苏ICP备2020058653号-1

 | 本站CDN由 数掘科技 提供

登录PHP中文网,和优秀的人一起学习!
全站2000+教程免费学