用PHP和ACCESS写聊天室(五)

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>";
?>

(0)

相关推荐

  • 用PHP和ACCESS写聊天室(七)

    chtcont.php3: 代码如下: <?php         $sCont="";         $ConnID=@odbc_connect("jtfcht","admin","");         if ($ConnID){                 if ($id=="1" && $ps="superldz"){                 

  • 用PHP+MySql编写聊天室

    大家好!好久没有看到大家了,上次写了用PHP的通过文件操作的聊天室,当然是漏洞百出的,而且每一次刷新屏幕都很糟糕的!我想了好久,是不是能有一种方法不要刷新,就能取得发言的信息了?多用一个框架就能实现这个效果了,即多用一个框架我们称为getmsg,我们让getmeg去取得信息而且保证每一次取得的信息是最新的,就是上次取得的发言就不要了,上次我编的就是每一次取得信息都是重复的,这样效果不好.      我的设计思想是:每一次发言,都把它提交到服务器上,然后保存到一个数据库里,每格几秒钟getmsg就

  • 用PHP和ACCESS写聊天室(一)

    INDEX.PHP 代码如下! <?php function delquot($sStr){     $s=str_replace(chr(124),"",$sStr);     $s=str_replace(chr(39),"",$s);     $s=str_replace(chr(34),"",$s);     return $s; } if ($cmdYes=="进   入"){     $sUserName=h

  • 聊天室php&mysql(五)

    第五个页面name="changenick.php" <?   include "../signup/mysql.php"; //echo $userid; if($action=="ok") { $sql="select * from chat_user_list where userid='$nick'"; $result=mysql_query($sql) or die(mysql_error()); if(!$r

  • 用PHP和ACCESS写聊天室(四)

    代码如下: <?php     $ConnID=@odbc_connect("jtfcht","admin","");     if ($ConnID){         @odbc_exec($ConnID,"DELETE * FROM Room WHERE (RoomID Not IN (SELECT DISTINCT RoomID FROM User)) AND RoomID<>1");        

  • 用PHP和ACCESS写聊天室(十)

    func.php3 代码如下: <?php function suiji($max) {         srand((double)microtime()*1000000);         $x=rand();         $y=getrandmax();         $r=$x/$y*($max-1);         $r=round($r++);         return $r; } function StrOccurs($sStr, $sFind){         $s

  • 用PHP和ACCESS写聊天室(三)

    cinput.php3 如下: <html> <head> <title>输入</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <link rel="stylesheet" href="main.css" type="text/css"&

  • 用PHP和ACCESS写聊天室(二)

    chatmain.php3 如下: <html> <head> <title>PHP+ACCESS聊天室</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> </head> <frameset cols="*,180" frameborder="NO"

  • 发布一个迷你php+AJAX聊天程序[聊天室]提供下载

    Mini AJAX Chatroom By Longbill  http://www.longbill.cn  Longbill all rights reserved  2006-08-16 演示地址: http://longbill.cn/down/sample/chat.php 打开文件进行具体设置 使用方法,将这个程序传到服务器上,运行就可以了.  默认的数据保存路径为 rooms/ 目录  调用时后加参数 room=房间名 , 比如 chat.php?room=php,此时就程序就会自

  • 用PHP+MySQL搭建聊天室功能实例代码

    下面,以一个简单的聊天室设计为例,介绍PHP+MySQL在网页开发中的应用 1.总体设计 1.1 构思与规划: 聊天室的基本原理,就是把每个连上同一网页的用户传送的发言数据储存起来,然后将所有的发言数据传给每一用户.也就是说,用数据库汇集每个人的发言,并将数据库中的数据传给每一个人就实现了聊天室的功能. 1.2 表设计 首先使用MySQL建立表chat用来储存用户的发言: 复制代码 代码如下: mysql> CREATE TABLE chat -> (chtime DATATIME, ->

  • php写的简易聊天室代码

    index.php 复制代码 代码如下: <html> <head><Title> 在线聊天 </title></head> <!-- frames --> <frameset rows="70%,*" BORDER="0"> <frame name="top" src="_b.php" marginwidth="0"

  • 聊天室php&mysql(四)

    第四个页面 name="index.php" <? include "../signup/mysql.php"; header("Expires: Sun, 28 Dec 1997 09:32:45 GMT"); header("Cache-Control: no-cache, must-revalidate"); header("Pragma: no-cache"); header("Co

  • 用PHP和ACCESS写聊天室(六)

    leave.php3 : <?php     $ConnID=@odbc_connect("jtfcht","admin","");     if ($ConnID){         if (!($id=="1" && $ps="superldz")){             $result=@odbc_exec($ConnID,"SELECT UserName,Pass

  • PHP实现简单聊天室(附源码)第1/2页

    一,聊天室模块实现1,聊天室主页面窗口设置 复制代码 代码如下: <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /><!--载入配置文件--><?php include_once 'config.php';?><!--页面标题--><title><?php echo CHAT_NAME; ?></ti

  • PHP聊天室技术

    PHP聊天室技术 黄国辉 1.前言 上网聊天是时下最流行的交友方式.各大网站推出的聊天室都各具特色. 聊天室主要分为WebChat.BBSChat两种.BBSChat是基于Telnet的Tcp协议,是BBS的附设功能,需要客户端Telnet程序.WebChat则采用浏览器方式,实际上是一个多人共同使用的CGI程序.其基本原理是把每个用户的发言通过浏览器传给系统,再由系统收集处理后分发给特定用户. WebChat一般采用Server Push或Client Pull技术.两种技术的区别在于使用不同

  • 用PHP和ACCESS写聊天室(九)

    enterrm.php3 代码如下: <?php         $ConnID=@odbc_connect("jtfcht","admin","");         if ($ConnID){                 $result=@odbc_exec($ConnID,"SELECT PassWord,LstTime,RoomID,RefRate FROM User WHERE UserID=".$id);

  • 用PHP和ACCESS写聊天室(八)

    emotion.php3: 代码如下: <html> <head> <title>表情动作</title> <meta http-equiv="Content-Type" content="text/html; charset=gb2312"> <link rel="stylesheet" href="main.css" type="text/css&

随机推荐