当前位置: 首页 > 图文教程 > 网络编程 > PHP > 模拟OICQ的实现思路和核心程序(一)

PHP
PHP实例:用PHP简单实现多条件查询
PHP实例:用PHP实现多文件上载系统程序
PHP实例程序:用PHP制作登录页面程序
PHP实例:PHP取GB2312编码字符串首字母的方法
PHP实例:用PHP实现表单验证码登陆校验
Oracle与PHP实例开发Myers订单跟踪系统
PHP实例:email address 生成图片程序
PHP连接远程MYSQL和MYSQL5.1中文乱码处理方法
用 PHP 构建自定义搜索引擎
详细讲解PHP的Jmai组件及发送邮件实例
在动态网页技术PHP5中类(CLASS)的新特征
实例学习PHP如何实现在线发邮件
PHP上传文件的代码
不需要GD库的情况下实现验证码
PHP进阶教程:实现网站的无限分类
童虎:人人皆可做插件 Discuz! 插件开发实例讲解
创建论坛专业知识库 HDWiki(For Discuz!)V1.0正式版发布
PHP网站后门的隐藏技巧测试报告
加速PHP动态网站 MySQL索引分析和优化
php中rename()函数的妙用

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-12   浏览: 81 ::
收藏到网摘: n/a

根据许多网友需求,特地把我站的这个模拟 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 用于弹出发送消息的对话窗口,大家可以在网页的源代码里面看到