很简单的,数据库加个表,有发送者id,接受者id,一个状态字段(0表示未读,1表示读过)。
网页上加个隐藏帧,几秒钟刷新一次,从数据库读这个表,有接收者id为本人id且状态字段为0的,就弹出个消息框,然后八状态字段设为1。这是最简单的,可以进一步细作

解决方案 »

  1.   

    楼上的okdw(零零发财) 老师能有一具体的列供参考吗?
      

  2.   

    : okdw(零零发财) 网页上加个隐藏帧,几秒钟刷新一次,刷新一次
    会不会有闪动效果.怎样使其看不到闪动效果.
     
      

  3.   

    阿,不好意思刚看到。隐藏帧可以做一个很小的frame,或者很小的iframe,大小几乎为零,看不到闪的,只是状态栏会有闪,表示在刷新某一页。下面是我当初做的数据库:
    CREATE TABLE web_message (
       msg_id bigint(20) NOT NULL auto_increment,
       msg_from varchar(60) NOT NULL,
       msg_to varchar(60) NOT NULL,
       msg_body text,
       msg_state tinyint(4) DEFAULT '0' NOT NULL,
       msg_date bigint(20),
       PRIMARY KEY (msg_id)
    );
    字段应该很好理解的吧?到时候在线用户的那个隐藏帧不断刷新察看smg_to等于自己id并且msg_state=0的纪录就跳出框来就行了,代码如下:(部分)<meta http-equiv="refresh" content="10">
    <? //读数据库,按照先后顺序一条条发
    $result=mysql_db_query($dbname,"select * from $web_message where msg_to='$usr' and msg_state=0 order by msg_date limit 1"); 
    if($myarray=mysql_fetch_array($result))
    {
     echo "<SCRIPT language=javascript>";
      echo "window.open('havemessage.php?msg_id=".$myarray[msg_id]."','SMS','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,width=300,height=150,top=0,left=0');";
      echo "</SCRIPT>";
    }?>havemessage.php是把那条记录读出给用户,用户可以回复信息等等……(这个不用我写了吧?呵呵)
      

  4.   

    okdw(零零发财) :我想再问一下,发送ID与接收ID怎么设定呢?
      

  5.   

    跌倒!发送信息时候设啊!
    发的表格
    <body bgcolor="#F3D196">
    <table width="90%" border="0" align="center">
      <tr>
     <form action="sentmessage.php" method="post">
        <td height="104" valign="top"><p align="center"> 
    <input type="input" name="toid" />
            <textarea name="msg_body" cols="30" rows="5" id="msg_body"></textarea>
            <br>
            <input type="submit" name="Submit" value="发送">
          </p>
          </td>
      </tr>
    </table>
    sentmessage.php(部分);
    <?
     $result=mysql_db_query($dbname,"insert $web_message (msg_from,msg_to,msg_body,msg_date) values('$usr','$toid','$msg_body','".time()."')");
     ?>发送者的id即$usr是用户登陆时候记在session中的总之原理就是这样,然后其中的细节要看你怎么用然后在编写了
      

  6.   

    刷新的时候用
    <script language="JavaScript">
    setTimeout("reld()",5000);
    function reld(){
    window.location.reload();
    }
    </script>
    放在隐藏针中,效果绝对保你满意,要是真想实现真正的无刷新需要用XML的功能刚做过一个这样的网页,但我用的是ASP.NET,总结,application还是很有用的。
      

  7.   

    楼上,无刷新用xml功能?不刷新怎么取得数据?用push吗?给个源码研究一下好吗?
    [email protected]
    谢了
      

  8.   

    无刷新用xml功能
      定时用xmlhttp获取数据,其实也是“刷新”用push吗
      由于目前ie不支持此技术,所以谈论的人很少。况且他产生一个连续的通道从资源利用和安全上讲是否值得?
      

  9.   

    无刷新用xml功能
      定时用xmlhttp获取数据,其实也是“刷新”用push吗
      由于目前ie不支持此技术,所以谈论的人很少。况且他产生一个连续的通道从资源利用和安全上讲是否值得?
      

  10.   

    okdw(零零发财) :能将你那程序代码施舍给我吗?我也是刚学PHP,说真的,连session根本就不了解。
    [email protected],如果你有MSN,能否加入我,以后可以更方便地请教你了!
      

  11.   

    okdw(零零发财) :
        能否将你的那程序代码共享给我吗!让我仔细研究学习!([email protected])因为我也是初学PHP。连session都不会用呢!
      

  12.   

    能给我这个初学者也来一份原程序吗[email protected]   先谢过各位老师!