用PHP和ACCESS写聊天室(五)


Posted in PHP onOctober 09, 2006

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:slimfish@990.net">贾铁锋</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>";
?>

PHP 相关文章推荐
MySQL数据库转移,access,sql server 转 MySQL 的图文教程
Sep 02 PHP
php 更新数据库中断的解决方法
Jun 05 PHP
初学CAKEPHP 基础教程
Nov 02 PHP
PHP5 的对象赋值机制介绍
Aug 02 PHP
PHP应用JSON技巧讲解
Feb 03 PHP
php中将数组转成字符串并保存到数据库中的函数代码
Sep 29 PHP
基于php实现七牛抓取远程图片
Dec 01 PHP
WordPress中用于更新伪静态规则的PHP代码实例讲解
Dec 18 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
Mar 21 PHP
使用PHPStorm+XDebug搭建单步调试环境
Nov 19 PHP
Django中通过定时任务触发页面静态化的处理方式
Aug 29 PHP
Yii框架实现对数据库的CURD操作示例
Sep 03 PHP
用PHP和ACCESS写聊天室(四)
Oct 09 #PHP
用php和MySql来与ODBC数据连接
Oct 09 #PHP
WHOIS类的修改版
Oct 09 #PHP
很实用的一个完整email发送程序
Oct 09 #PHP
用PHP和ACCESS写聊天室(三)
Oct 09 #PHP
对javascript和select部件的结合运用
Oct 09 #PHP
用PHP和ACCESS写聊天室(二)
Oct 09 #PHP
You might like
ThinkPHP控制器间实现相互调用的方法
2014/10/31 PHP
详解PHP中websocket的使用方法
2016/09/15 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
jquery HotKeys轻松搞定键盘事件代码
2008/08/30 Javascript
jQuery 使用手册(七)
2009/09/23 Javascript
使用滤镜设置透明导致 IE 6/7/8/9 解析异常的解决方法
2011/04/07 Javascript
再谈javascript面向对象编程
2012/03/18 Javascript
JS实现图片横向滚动效果示例代码
2013/09/04 Javascript
jquery插件推荐 jquery.cookie
2014/11/09 Javascript
深入解析JavaScript中函数的Currying柯里化
2016/03/19 Javascript
清除浏览器缓存的几种方法总结(必看)
2016/12/09 Javascript
Bootstrap路径导航与分页学习使用
2017/02/08 Javascript
jQuery插件imgAreaSelect基础讲解
2017/05/26 jQuery
angular之ng-template模板加载
2017/11/09 Javascript
浅谈vue中慎用style的scoped属性
2017/11/28 Javascript
vue给input file绑定函数获取当前上传的对象完美实现方法
2017/12/15 Javascript
vue.extend与vue.component的区别和联系
2018/09/19 Javascript
浅谈Vue.js中如何实现自定义下拉菜单指令
2019/01/06 Javascript
vue 详情跳转至列表页实现列表页缓存
2019/03/27 Javascript
Element Alert警告的具体使用方法
2020/07/27 Javascript
[57:29]Alliance vs KG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/17 DOTA
Python松散正则表达式用法分析
2016/04/29 Python
Python判断文件或文件夹是否存在的三种方法
2017/07/27 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
python gdal安装与简单使用
2019/08/01 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
使用AJAX和Django获取数据的方法实例
2020/10/25 Python
python中字符串的编码与解码详析
2020/12/03 Python
为什么使用接口?
2014/08/13 面试题
岗位职责的定义
2013/11/10 职场文书
酒店实习个人鉴定
2013/12/07 职场文书
信息科学与技术专业求职信范文
2014/02/20 职场文书
乡镇纠风工作实施方案
2014/03/22 职场文书
测量员岗位职责
2015/02/14 职场文书
2015年卫生院健康教育工作总结
2015/07/24 职场文书
关于JavaScript回调函数的深入理解
2021/06/27 Javascript