用PHP+MySql编写聊天室_php教程-查字典教程网
用PHP+MySql编写聊天室
用PHP+MySql编写聊天室
发布时间:2016-12-29 来源:查字典编辑
摘要:大家好!好久没有看到大家了,上次写了用PHP的通过文件操作的聊天室,当然是漏洞百出的,而且每一次刷新屏幕都很糟糕的!我想了好久,是不是能有一...

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

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

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

<script language="JavaScript">

<>

</script>

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

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

表的名字是:chat和chat_getmsg

<>

<?PHP

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

?>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

</head>

<frameset rows="283,105" frameborder="YES" border="1" framespacing="0" cols="*">

<frameset cols="520,113" frameborder="yes" border="1" framespacing="0" rows="*">

<frame name="topFrame" scrolling="auto" border="1" noresize src="list.html" >

<frame name="rightFrame" scrolling="auto" border="1" noresize src="username.php">

</frameset>

<frameset rows="17,90" frameborder="yes" border="1" framespacing="0" cols="*">

<?PHP echo "<frame name="topFrame1" scrolling="NO" border="1" noresize src="getmsg1.php?username=$username">n"; ?>

<?PHP echo "<frame name="bottomFrame" scrolling="NO" border="1" noresize src="fayan.php?username=$username">n"; ?>

</frameset>

</frameset>

<noframes><body bgcolor="#FFFFFF">

</body></noframes>

</html>

<>

<?php

if(!isset($username))

$username="guest";

if(!isset($yanse))

$yanse="blue";

if(!isset($objectname))

$objectname="大家";

?>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style type="text/css">

<>

</style>

</head>

<body bgcolor="#ff3333">

<form method="post" name="fayanform" action=<?PHP echo ""fayan.php?username=$username&yanse=$yanse&objectname=$objectname "";?> class="normalfont">

<table width="100%" border="0" cellspacing="0" cellpadding="0" class="normalfont">

<tr>

<td width="17%"height="22"> 颜色:

<select id=yanse name="yanse">

<option value="blue" <?PHP if($yanse=="blue") echo "SELECTED";?> >Blue

<option value="red"<?PHP if($yanse=="red") echo "SELECTED";?> >red

<option value="green" <?PHP if($yanse=="green") echo "SELECTED";?>>green

<option value="yellow" <?PHP if($yanse=="yellow") echo "SELECTED";?> >yellow

<option value="brown" <?PHP if($yanse=="brown") echo "SELECTED";?> >brown

<option value="#ff00ff" <?PHP if($yanse=="#ff00ff") echo "SELECTED";?> >ff00ff

<option value="#bb00ff" <?PHP if($yanse=="#bb00ff") echo "SELECTED";?> >bb00ff

<option value="#cc00ff" <?PHP if($yanse=="#cc00ff") echo "SELECTED";?> >cc00ff

<option value="#aa00ff" <?PHP if($yanse=="#aa00ff") echo "SELECTED";?> >aa00ff

<option value="#6600ff" <?PHP if($yanse=="#6600ff") echo "SELECTED";?> >6600ff

<option value="#7700ff" <?PHP if($yanse=="#7700ff") echo "SELECTED";?> >7700ff

<option value="#1100ff" <?PHP if($yanse=="#1100ff") echo "SELECTED";?> >1100ff

<option value="#11ffff" <?PHP if($yanse=="#11ffff") echo "SELECTED";?> >11ffff

<option value="#11aaff" <?PHP if($yanse=="#11aaff") echo "SELECTED";?> >11aaff

<option value="#1199ff" <?PHP if($yanse=="#1199ff") echo "SELECTED";?> >1199ff

<option value="#1133ff" <?PHP if($yanse=="#1133ff") echo "SELECTED";?> >1133ff

</select>

</td>

<td width="55%"height="22" class="normalfont">发言:

<input type="text" name="fayan" size=35 >

<input type="hidden" name="username" value=<?PHP echo ""$username""; ?> >

<input type="Button" name="Button" value="发言" onclick="submitfayan()">

</td>

<td width="28%"height="22"> </td>

</tr>

<tr>

<td width="17%" height="20">对象:

<input type="text" name="objectname" size=10 value=<?PHP echo ""$objectname"";?> >

</td>

<td width="55%"height="20" class="normalfont"><a href="http://chenlipan.oso.com.cn">回去</a> </td>

<td width="28%" height="20" class="normalfont" > </td>

</tr>

</table>

</form>

</body>

<Script language="JavaScript">

<>

</script>

</html>

<?PHP

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

}

?>

<>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<?PHP

$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 "<meta http-equiv="Refresh" content="6,url=getmsg.php?username=$username" >n";

echo "</head>n";

echo "<script language="JavaScript">n";

echo "<>n";

echo "</script>n";

?>

<body bgcolor="#333333">

</body>

</html>

<>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<?PHP

if(!isset($username))

$username="guest";

echo "<meta http-equiv="Refresh" content="6;url=getmsg.php?username=$username" >n";

echo "</head>n";

echo "<script language="JavaScript">n";

echo "<>n";

echo "</script>n";

?>

<body bgcolor="#333333">

</body>

</html>

<>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<style type="text/css">

<>

</style>

</head>

<body bgcolor="#FFFFFF" >

<center>

<div color=blue>

<font color=white size=6><b>

欢迎光临</b>

</marquee>

</div>

</center>

<div id=lin class="lin"></div>

</body>

<Script language="JavaScript">

<>

</script>

</html>

<>

<html>

<head>

<title>Untitled Document</title>

<meta http-equiv="Content-Type" content="text/html; charset=gb2312">

<meta http-equiv="Refresh" content="60">

<style type="text/css">

<>

</style>

</head>

<body bgcolor="#33ff00" >

<center class="lin"><b>

在线人数 </b>

<hr>

<?PHP

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 "<a href="JavaScript:selectusername('$username')">$username</a><br>n";

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

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

mysql_query($sql,$linkid);

mysql_close($linkid);

}

?>

</center>

<Script language="JavaScript">

<>

</script>

</body>

</html>

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

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新php教程学习
    热门php教程学习
    编程开发子分类