模拟OICQ的实现思路和核心程序(一)


Posted in PHP onOctober 09, 2006

根据许多网友需求,特地把我站的这个模拟 OICQ 的在线聊天的东西献给大家!

1 用户必须注册登陆,在数据库 userinfo 里面保存如下几个字段
Name 不用问了,这是登陆用的用户名,必须唯一
Password 登陆密码
NickName 用户昵称,也就是显示的名字
Face 存放着用户头像的编号,比如 01,代表 /images/face/01.gif 头像文件
OnlineStatus 用户是否在线的标志,在用户登陆的时候设置为 1
CurrentDate 用户最后访问/更新的时间,用于判断用户是否在线

聊天纪录 forumtalk 的结构为
CREATE TABLE forumtalk (
id int(11) NOT NULL auto_increment,
sender varchar(20) NOT NULL,
receiver varchar(20) NOT NULL,
date int(11) DEFAULT '0' NOT NULL,
readsign tinyint(4) DEFAULT '0' NOT NULL,
body varchar(200) NOT NULL,
PRIMARY KEY (id),
UNIQUE id_2 (id),
KEY id (id)
);
其中 sender 是发送人的 Name
receiver 是接受人的 Name
date 是发言的时间
readsign 发言是否已经阅读过
body 发言内容

2 显示在线用户的头像
<?
$onlineresult = mysql_query("select Name,NickName,Face,EnterTimes from userinfo where OnlineStatus=1 and CurrentDate >".(date("U")-120));
$onlinenumber = mysql_num_rows($onlineresult);
echo "欢迎光临,共有:".$onlinenumber."位朋友在线,按头像发短信息:";
for($i=0;$i<$onlinenumber;$i++)
{
if(!$onlineuser = mysql_fetch_array($onlineresult))break;
echo "<a onClick=MM_openBrWindow('shortalk.php?talkto=".$onlineuser['Name']."','".$onlineuser['Name']."','width=300,height=250')><img src='images/face/".$onlineuser['Face'].".gif' width=20 height=20 ";
if($name == $onlineuser['Name'])echo "border=1 ";
echo " title='代号:".$onlineuser['Name']."\n昵称:".$onlineuser['NickName']."\n来访:".$onlineuser['EnterTimes']."'></a>";
}
?>

其中的 onClick 用于弹出发送消息的对话窗口,大家可以在网页的源代码里面看到 

PHP 相关文章推荐
用PHP制作静态网站的模板框架(三)
Oct 09 PHP
PHP中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
动易数据转成dedecms的php程序
Apr 07 PHP
攻克CakePHP系列二 表单数据显示
Oct 22 PHP
国外比较好的几个的Php开源建站平台小结
Apr 22 PHP
php将文本文件转换csv输出的方法
Dec 31 PHP
php计算两个坐标(经度,纬度)之间距离的方法
Apr 17 PHP
php实现的日历程序
Jun 18 PHP
php抽象方法和抽象类实例分析
Dec 07 PHP
实例讲解PHP中使用命名空间
Jan 27 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 PHP
Mac下关于PHP环境和扩展的安装详解
Oct 17 PHP
PHP自动更新新闻DIY
Oct 09 #PHP
模拟OICQ的实现思路和核心程序(二)
Oct 09 #PHP
层叠菜单的动态生成
Oct 09 #PHP
多数据表共用一个页的新闻发布
Oct 09 #PHP
PHP与MySQL交互使用详解
Oct 09 #PHP
3种平台下安装php4经验点滴
Oct 09 #PHP
多重?l件?合查?(二)
Oct 09 #PHP
You might like
php中利用str_pad函数生成数字递增形式的产品编号
2013/09/30 PHP
PHP编写RESTful接口的方法
2016/02/21 PHP
php实现文件预览功能
2017/05/23 PHP
JavaScript Event学习第八章 事件的顺序
2010/02/07 Javascript
某人初学javascript的时候写的学习笔记
2010/12/30 Javascript
JQuery获取各种宽度、高度(format函数)实例
2013/03/04 Javascript
页面使用密码保护代码
2013/04/10 Javascript
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
js实现显示当前状态的导航效果代码
2015/08/28 Javascript
超漂亮的jQuery图片轮播特效
2015/11/24 Javascript
jQuery实现图片文字淡入淡出效果
2015/12/21 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
js 获取当前web应用的上下文路径实现方法
2016/08/19 Javascript
js HTML5 canvas绘制图片的方法
2017/09/08 Javascript
使用react render props实现倒计时的示例代码
2018/12/06 Javascript
深入浅析vue-cli@3.0 使用及配置说明
2019/05/08 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
python批量导出导入MySQL用户的方法
2013/11/15 Python
python基础教程之循环介绍
2014/08/29 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
Python线性回归实战分析
2018/02/01 Python
OpenCV 边缘检测
2019/07/10 Python
OpenCV中VideoCapture类的使用详解
2020/02/14 Python
Pytorch使用PIL和Numpy将单张图片转为Pytorch张量方式
2020/05/25 Python
CSS3弹性伸缩布局之box布局
2016/07/12 HTML / CSS
Viking比利时:购买办公用品
2019/10/30 全球购物
申报职称专业技术个人的自我评价
2013/12/12 职场文书
会计电算化专业毕业生推荐信
2013/12/24 职场文书
《充气雨衣》教学反思
2014/04/07 职场文书
国贸专业求职信
2014/06/28 职场文书
放飞梦想演讲稿800字
2014/08/26 职场文书
银行求职自荐信范文
2015/03/04 职场文书
学生退学证明
2015/06/23 职场文书
催款函范本大全
2015/06/24 职场文书
MySQL之高可用集群部署及故障切换实现
2021/04/22 MySQL