php mysql 简单聊天室_用PHP+MySql编写聊天室

使用PHP和MySQL创建的聊天室应用,通过数据库存储发言并利用JavaScript实现实时更新,避免页面刷新,提高用户体验。
摘要由CSDN通过智能技术生成

用PHP+MySql编写聊天室

更新时间:2006年10月09日 00:00:00   作者:

大家好!好久没有看到大家了,上次写了用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

<?PHP echo "n"; ?>

<?PHP echo "n"; ?>

if(!isset($username))

$username="guest";

if(!isset($yanse))

$yanse="blue";

if(!isset($objectname))

$objectname="大家";

?>

Untitled Document class="normalfont">
颜色:

>Blue

>red

  >green

>yellow

>brown

>ff00ff

>bb00ff

>cc00ff

>aa00ff

>6600ff

>7700ff

>1100ff

>11ffff

>11aaff

>1199ff

>1133ff

发言:

>

对象:

>

回去

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 "

echo "n";

echo "n";

?>

Untitled Document

if(!isset($username))

$username="guest";

echo "n";

echo "n";

echo "

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);

}

?>

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

相关文章

1a1b05c64693fbf380aa1344a7812747.png

也谈 PHP 和 MYSQL...2006-10-10

4f55910a645b073bc4fc65dc10dc14bd.png

今天小编就为大家分享一篇关于PHP的mysqli_set_charset()函数讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-01-01

0ea3c7666119d5615e582f823fb3fad6.png

汉字转化为拼音(php版)...2006-10-10

4f96a78db829b1556ff16de21e013c7a.png

PHP调用三种数据库的方法(1)...2006-10-10

8cc1031babc6aff2319f1c6af8544aa0.png

获取系统时间时,发现获取的时间与系统的时间不符。2008-06-06

0c932a99bb7b6f23c937db507070cc7b.png

PHP个人网站架设连环讲(二)...2006-10-10

cca732bf65a93ed2ec0ac80c638460fe.png

对盗链说再见......2006-10-10

2d9f31f2af7b675a3d153d2b7f1035a7.png

建立动态的WML站点(一)...2006-10-10

b452cee8ec5cd9e58ab98eba17281e59.png

PHP文件上传后缀名与文件类型对照表整理,需要的朋友可以参考下。2011-07-07

f4838ec7e2d4da28e0b57d4e852dadd4.png

php生成文件...2007-01-01

最新评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值