快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

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

根据许多网友需求,特地把我站的这个模仿 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如何统计在线人数
下一教程: Windows 2000下安装PHP4及MySQL大揭密

您可以阅读与"模仿OICQ的实现思路和核心程序(一) "相关的教程:
· 模仿OICQ的实现思路和核心程序(二) 
· php生成SessionID和图片校验码的思路和实现
· Web报表工具的设计 ------实现思路
· 用文本文件实现的动态实时发布新闻的程序
· 在Access中实现字段长超过255个字节的新思路
    微笑服务 优质保证 索取样品