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

时间:2010-01-20 08:24:27  来源:第二电脑网  作者:第二电脑网

  第二电脑网导读:bsp; Password 登陆密码   NickName 用户昵称,也就是显示的名字   Face 存放着用户头像的编号,比如 01,代表 /images/face/01.gif 头像文件   OnlineStatus 用户是否在线的标志,在用户登陆的时候设置为 1   CurrentDate 用户最后访问/更新的时间,用于判断用户是否在线      聊...
  正文:

根据许多网友需求,特地把我站的这个模拟 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 用于弹出发送消息的对话窗口,大家可以在网页的源代码里面看到
3 在线用户的信息扫描和更新
  在网页中使用内置框架来调用扫描和更新程序,这行也能在网页源代码里面看到!
  <iframe name=flush src="userflush.php" width="0" height="0" frameborder="0" scrolling="NO" marginwidth="0" marginheight="0" hspace="0" vspace="0"></iframe>
  
  4 信息扫描和更新程序 userflush.php
  
  <?
  session_start();
  mysql_connect("localhost","","");
  mysql_select_db("php2000");
  $delaytime=0;
  
  // 查找新的发言
  $query = "select * from forumtalk where readsign=0 and receiver='$name'";
  $result = mysql_query($query);
  if( mysql_num_rows($result) > 0)
  {
  // 读取和显示弹出窗口
  $msg = mysql_fetch_array($result);
  $numberfriend = $msg['id'];
  echo "<script language=JavaScript>window.open('shortalk.php?action=view&talknumber=$numberfriend','_blank','width=300,height=250')</script>";
  }
  
  // 设置当前用户的最新时间标志,表示它在线 《模拟OICQ的实现思路和核心程序》由第二电脑网原创提供,转载请注明:http://www.002pc.com/master/College/Programming/PHP/12063.html

 1/4    1 2 3 4 下一页 尾页


关键字:

关于《模拟OICQ的实现思路和核心程序》文章的评论

站内搜索: 高级搜索

热门搜索: Windows style 系统 tr IP QQ CPU 安装 function 注册 if td