您的位置:首页网页设计PHP实例 → 用PHP+MySql编写聊天室

用PHP+MySql编写聊天室

时间:2004/11/7 3:24:00来源:本站整理作者:蓝点我要评论(0)

大家好!好久没有看到大家了,上次写了用PHP的通过文件操作的聊天室,当然是漏洞百出的,而且每一次刷新屏幕都很糟糕的!我想了好久,是不是能有一种方法不要刷新,就能取得发言的信息了?多用一个框架就能实现这个效果了,即多用一个框架我们称为getmsg,我们让getmeg去取得信息而且保证每一次取得的信息是最新的,就是上次取得的发言就不要了,上次我编的就是每一次取得信息都是重复的,这样效果不好。

     我的设计思想是:每一次发言,都把它提交到服务器上,然后保存到一个数据库里,每格几秒钟getmsg就去服务器上取得 最新发言数据,并保证上次取得的发言就不要取下来了,然后把取下来的发言叠加到一个专门显示发言的窗口(listmsg)去。这样我们就感觉listmsg窗口不会有重刷新的感觉而且,只是看到发言信息不断加进去,这样就有很好的效果,

怎样在一个框架把信息加到另个框架去了?用JavaScript就可以实现这个想法的:



当然你得在mysql里建两个表,一个表用于保存发言信息,一个表用于保存几个在线的,在列在线人数时,我们让它每个60秒刷新一次,并把一分钟以前的发言删掉,并看某个发言人是不是很长时间没发言了,是的话,就删掉他,

由于表的子段很简单,在这里就不要写出来了,看程序就会知道了。这个程序在网上网下测试的效果都很好!

表的名字是:chat和chat_getmsg




if(!isset($username))  

    $username="guest";

  $conid=mysql_connect("localhost","yourcounter","password");

  mysql_select_db("yourdadabase",$conid);

$dstr=date("YmdHis");

$sql="insert chat_getmsg (username,shijian) values ('$username','$dstr')";

mysql_query($sql,$conid);

$sql="update chat_getmsg set shijian='$dstr' where username='$username'";

mysql_query($sql,$conid);

mysql_close($conid);

?>





Untitled Document





  

    

    

    

  

    

   n"; ?>

   n"; ?>

  



<body bgcolor="#FFFFFF"> <br><BR> <br><BR> </body>






if(!isset($username))

     $username="guest";

if(!isset($yanse))

      $yanse="blue";

if(!isset($objectname))

      $objectname="大家";

?>





Untitled Document











class="normalfont">

  

      

      

      

      

    

      

      

      

      

    

  
颜色:  

        

      
发言:  

        

        

         >

         

        

      
对象:

         >

      
回去











if(isset($username)&&isset($fayan)){

$conid=mysql_connect("localhost","yourcount","yourpassword");

mysql_select_db("database",$conid);

$sql="insert chat (username,objectname,action,msg,color) values ("$username","$objectname","NO","$fayan","$yanse")";

mysql_query($sql,$conid);

mysql_close($conid);

}

?>







Untitled Document




$conid=mysql_pconnect("localhost","yourcount","password");

mysql_select_db("database",$conid);



if(!isset($username))

     $username="getmsg";  

$dt=time();   

$newdate=date("YmdHis",$dt);

$fromdate=date("YmdHis",$dt-6);;



$sql="select username as name,msg,action,objectname ,shijian,color from chat where shijian>="$fromdate"";

$res=mysql_query($sql,$conid);



echo "n";

echo "n";



echo "n";

?>















Untitled Document




if(!isset($username))

     $username="guest";

echo "n";

echo "n";



echo "n";

?>













Untitled Document















欢迎光临
























Untitled Document















  在线人数






if(!isset($username))

    $username="guest";

$dt=time();   

$newdate=date("YmdHis",$dt);

$fromdate=date("YmdHis",$dt-200);

$linkid=mysql_connect("localhost","yourcount","password");

mysql_select_db("yourdatabase",$linkid);

$sql="update chat_getmsg set shijian="$newdate" where username="$username"";

mysql_query($sql,$linkid);

$sql="select username from chat_getmsg where shijian>="$fromdate"";

$res=mysql_query($sql,$linkid);  

while(list($username)=mysql_fetch_row($res)){

     echo "$username
n";

$fromdate=date("YmdHis",$dt-100);

$sql="delete from chat where shijian<="$fromdate"";

mysql_query($sql,$linkid);

mysql_close($linkid);

}

?>













【本文版权归作者与奥索网共同拥有,如需转载,请注明作者及出处】    


相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么

文章评论
发表评论

热门文章 没有查询到任何记录。

最新文章 我的php文件怎么打开_php运算符怎么写 php 如何生成静态页面的函数PHP生成图片缩略图PHP session常见问题集锦及解决办法PHP实现同步远程Mysql

人气排行 DEDE在文章列表文章没有缩略图的不显示图片php+mysq修改用户密码我的php文件怎么打开_如何打开php文件的办法FCKeditor的配置和使用方法使用dedecms建站教程PHP+Ajax实现分页技术图片存储与浏览一例Linux+Apache+PHP+MySQLPHP生成图片缩略图