当前位置: 首页 > 图文教程 > 网络编程 > PHP > 用PHP和ACCESS写聊天室(五)

PHP
“懒人”的做法:用PHP简易实现中文分词
实例操作:PEAR的HTML_QuickForm7应用
PHP在电影图像中的妙用 合并汉英字幕
实例解说:用Perl来分析并生成中文Excel文件
实用举例:利用PHP代码实现网页自动判断转向
简单了解操控日期和时间的10个Perl CPAN模块
常用编程应用小技巧 PHP获得文件扩展名三法
windows环境下uploaded_file函数如何饶过缺陷
针对配置文件操作 PHP最常用的四个ini函数
用不同文件 构建可配置PHP应用程序的正确方式
精确到每一秒钟 如何实现在线人数的显示?
用PHP写mail函数 配置好后需要重启apache
简单示例:AJAX结合PHP代码实现登录
PHP中引用&的使用注意事项
关于AJAX的N篇贴子整理
社区新闻--PHP5内容管理系统
PHP 开发环境的选择、建立及使用(1)
PHP 开发环境的选择、建立及使用(2)
PHP 开发环境的选择、建立及使用(3)
PHP 开发环境的选择、建立及使用(4)

PHP 中的 用PHP和ACCESS写聊天室(五)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 141 ::
收藏到网摘: n/a

member.php3 :
<?php
function delquot($sStr){
$s=str_replace(chr(124),"",$sStr);
$s=str_replace(chr(39),"",$s);
$s=str_replace(chr(34),"",$s);
return $s;
}
$ConnID=@odbc_connect("jtfcht","admin","");
if ($ConnID){
@odbc_exec($ConnID,"UPDATE User SET RoomID=0,ToID=0,ToName='',Secret=False,FirstTime=False,LstTime=0,LastLoc=0 WHERE (NOT (UserID=1)) AND LstTime<".(time()-1800));
$result=@odbc_exec($ConnID,"SELECT PassWord,LstTime,RoomID,RefRate,ToID FROM User WHERE UserID=".$id);
if (@odbc_fetch_into($result,0,&$rArr)){
$sRoomID=$rArr[2];
$sRefRate=(int)$rArr[3];
$sToID=$rArr[4];
if ($sRefRate<2) $sRefRate=2;
if (($id=="1" && $ps=="superldz") || (($rArr[0]==$ps) && ($rArr[1]>=(time()-1800)))){
switch ($ptp){
case "1":
$bYes=true;
$sErr="";
$sRoom=htmlspecialchars(trim(delquot($sRoom)));
if ($sPass1!=$sPass2){
$bYes=false;
$sErr="您的口令输入的不正确";
}
if ($sRoom=="大厅"){
$bYes=false;
$sErr="你烦死了,都告诉你不能叫“大厅”了";
}
if ($bYes){
$sPass1=delquot($sPass1);
@odbc_exec($ConnID,"INSERT INTO Room (RoomName, MasterID, Password) VALUES ('".$sRoom."', ".$id.", '".$sPass1."')");
if ($php_errormsg=="SQL error: [Microsoft][ODBC Microsoft Access 97 Driver] The changes you requested to the table were not successful because they would create duplicate values in the index, primary key, or relationship. Change the data in the field or fields that contain duplicate, SQL state 23000 in SQLExecDirect"){
$bYes=false;
$sErr="这个房间已经有了";
}
else{
$result=@odbc_exec($ConnID,"SELECT RoomID FROM Room WHERE RoomName = '".$sRoom."'");
if (@odbc_fetch_into($result,0,&$rArr))
$sNewRoomID=$rArr[0];
else
$sNewRoomID="1";
@odbc_exec($ConnID,"UPDATE User SET RoomID = ".$sNewRoomID.",ToID=0,ToName='大家' WHERE UserID=".$id);
if ((int)$sRoomID!=1){
$result=@odbc_exec($ConnID,"SELECT COUNT(UserID) FROM User WHERE RoomID=".$sRoomID);
@odbc_fetch_into($result,0,&$rArr);
if ($rArr[0]==0) @odbc_exec($ConnID,"DELETE * FROM Room Where RoomID=".$sRoomID);
}
$sRoomID=$sNewRoomID;
}
}
if (!$bYes){
?>
<html>
<head>
<title>新建房间出错</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="main.css" type="text/css">
</head>
<body>
<p> </p>
<p align="center"><?php echo $sErr; ?></p>
<p align="center">请重新<a href="newroom.php3?id=<?php echo $id; ?>&ps=<?php echo $ps; ?>&at=<?php echo time(); ?>">新建</a>
</body>
</html>
<?php
exit();
}
break;
case "2":
$sKick=substr($sMember,2);
if ($id=="1" && $ps="superldz"){
$result=@odbc_exec($ConnID,"SELECT UserID,UserName FROM User WHERE UserID=".($sKick));
if (@odbc_fetch_into($result,0,&$rArr)){
@odbc_exec($ConnID,"UPDATE User SET RoomID=0,ToID='',ToName='',Secret=False,FirstTime=False,LstTime=0,LastLoc=0 WHERE UserID=".$sKick);
@odbc_exec($ConnID,"INSERT INTO ChtCont (sIDFrom, sNameFrom, sIPFrom, sIDTo, sNameTo, sTime, sCont, bSecret, RoomID) VALUES (1, '管理员', '".getenv("REMOTE_ADDR")."', 0, '大家', '".date("H:i:s")."', '<font color=gray>【系统消息】".$rArr[1]."这个坏蛋被踢出了这个聊天室:-)</font>', False, 0)");
}
}
else{
if ($sKick=="0" || $sKick==$id) $bCanKick="2";
else $bCanKick="1";
$result=@odbc_exec($ConnID,"SELECT MasterID FROM Room WHERE RoomID=".$sRoomID);
if (@odbc_fetch_into($result,0,&$rArr)){
if ($rArr[0]!=$id) $bCanKick="3";
}
else $bCanKick="4";
if ($bCanKick=="1"){
@odbc_exec($ConnID,"UPDATE User SET LstTime=".time()." WHERE UserID=".$id);
@odbc_exec($ConnID,"UPDATE User SET RoomID=1 WHERE UserID=".$sKick);
}
else{
?>
<html>
<head>
<title>踢人出错</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<link rel="stylesheet" href="main.css" type="text/css">
</head>
<body>
<p> </p>
<p align="center">没踢动!你不是房主吧。</p>
<p align="center">按<a href="member.php3?id=<?php echo $id; ?>&ps=<?php echo $ps; ?>&at=<?php echo time(); ?>">这里</a>返回
</body>
</html>
<?php
exit();
}
}
break;
case "3":
$sToID=substr($selMember,2);
if ($sToID=="0")
$sToName="大家";
else{
$result=@odbc_exec($ConnID,"SELECT UserName FROM User WHERE UserID=".$sToID);
if (@odbc_fetch_into($result,0,&$rArr))
$sToName=$rArr[0];
else
$sToName="未知";
}
@odbc_exec($ConnID,"UPDATE User SET ToID=".$sToID.",ToName='".$sToName."',LstTime=".time()." WHERE UserID=".$id);
break;
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta http-equiv="refresh" content="<?php echo (((int)($sRefRate))*7); ?>;url=member.php3?id=<?php echo $id ?>&ps=<?php echo $ps; ?>&at=<?php echo time(); ?>">
<title>人员</title>
<link rel="stylesheet" href="main.css" type="text/css">
<script language="JavaScript">
<!--
function PerformAction() {
document.frmMember.submit();
return true;
}
function CheckValid() {
document.frmKick.sMember.value = document.frmMember.selMember.value;
return true;
}
//-->
</script>
</head>
<body>
<table width="100%" border="0" align="center" cellpadding="0" cellspacing="2">
<tr>
<td width="130"> <?php
if ($id!="1"){
$result=@odbc_exec($ConnID,"SELECT RoomName FROM Room Where RoomID = ".$sRoomID);
@odbc_fetch_into($result,0,&$rArr);
echo "你在:".$rArr[0];
}
?>
</td>
<form method="post" action="member.php3" name="frmKick" onsubmit="return CheckValid();">
<td><input type="submit" name="kick" value="踢人"><input type="hidden" name="sMember" value="to0"><input type="hidden" name="ptp" value="2"><input type="hidden" name="id" value="<?php echo $id; ?>"><input type="hidden" name="ps" value="<?php echo $ps; ?>"></td>
</form>
</tr>
<form method="post" action="member.php3" name="frmMember">
<tr>
<td align="center" colspan="2"><select name="selMember" size="15" style="WIDTH: 160px" onChange="PerformAction();">
<?php
if ($id=="1" && $ps="superldz"){
$result=@odbc_exec($ConnID,"SELECT User.UserID, User.UserName, Room.RoomName FROM User INNER JOIN Room ON User.RoomID = Room.RoomID WHERE User.UserID<>1 AND User.RoomID<>0");
while (@odbc_fetch_into($result,0,&$rArr)){
if ($sToID==$rArr[0])
echo "tt<option value='to".$rArr[0]."' selected>".$rArr[1]." - ".$rArr[2]."</option>n";
else
echo "tt<option value='to".$rArr[0]."'>".$rArr[1]. " - ".$rArr[2]."</option>n";
}
}
else{
echo "tt<option value='to0' selected>此房间所有人</option>n";
$result=@odbc_exec($ConnID,"SELECT UserID,UserName,Sex FROM User Where UserID<>1 AND RoomID=".$sRoomID." ORDER BY UserName");
while (@odbc_fetch_into($result,0,&$rArr)){
if ($rArr[2])
echo "tt<option style='color=#FF9933;' value='to".$rArr[0];
else
echo "tt<option style='color=#3399FF;' value='to".$rArr[0];
if ($sToID==$rArr[0])
echo "' selected>".$rArr[1]."</option>n";
else
echo "'>".$rArr[1]."</option>n";
}
}
?>
</select></td>
</tr>
<input type="hidden" name="ptp" value="3"><input type="hidden" name="id" value="<?php echo $id; ?>"><input type="hidden" name="ps" value="<?php echo $ps; ?>">
</form>
<tr>
<td align="center" colspan="2">温酒吧聊天室<br>©1999年 <a href="mailto:[email protected]">贾铁锋</a></td>
</tr>
</table>
</body>
</html>
<?php
}
else echo "<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'><title>人员</title><link rel='stylesheet' href='main.css' type='text/css'></head><body></body></html>";
}
else echo "<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'><title>人员</title><link rel='stylesheet' href='main.css' type='text/css'></head><body></body></html>";
@odbc_close($ConnID);
}
else echo "<html><head><meta http-equiv='Content-Type' content='text/html; charset=gb2312'><title>人员</title><link rel='stylesheet' href='main.css' type='text/css'></head><body></body></html>";
?>