用PHP和ACCESS写聊天室(三)

cinput.php3
如下:


输入






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){
    $sTemp=$sStr;
    $iLen=strlen($sFind);
    $iCount=0;
    while (true){
        if (strstr($sTemp, $sFind))
            break;
        else{
            $sTemp = substr($sTemp,strpos($sTemp,$sFind)+$iLen);
            $iCount++;
        }
    }
    return $iCount;
}

function StrDupl($sStr, $iCnt){
    $ret="";
    for($i=1;$i<=$iCnt;$i++)
        $ret.=$sStr;
    return $ret;
}

function DelQuot($sStr){
    $s=str_replace(chr(124),"¦",$sStr);
    $s=str_replace(chr(39),"´",$s);
    $s=str_replace(chr(34),""",$s);
    return $s;
}

function DelTag($sStr){
    $bNeed="False";
    $sOther=strtoupper($sStr);
    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"    if ($bNeed!="True" || !strstr($sOther,"FONT-SIZE:")) $bNeed="True";
    if ($bNeed=="True")
        return str_replace(">",">",str_replace("<","<",$sStr));
    else
        return $sStr;
}

function AddLost($sStr){
    $ret=$sStr;
    $ret.=StrDupl(">", (StrOccurs(strtoupper($ret), "<") - StrOccurs(strtoupper($ret), ">")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    $ret.=StrDupl("", (StrOccurs(strtoupper($ret), "")));
    return $ret;
}

$sSecret="False";
$sRefRate=5;
$ConnID=@odbc_connect("jtfcht","admin","");
if ($ConnID){
    if ($id=="1" && $ps="superldz"){
        $result=@odbc_exec($ConnID,"SELECT RefRate FROM User WHERE UserID=".$id);
        if (@odbc_fetch_into($result,0,&$rArr)){
            $sRefRate=$rArr[0];
            if ($cmdSend=="送出"){
                $sRefRate=(int)($txtRefRate);
                if ($sRefRate<2) $sRefRate=2;
                @odbc_exec($ConnID,"UPDATE User SET RefRate=".$sRefRate.",LstTime=".time()." WHERE UserID=".($id));
                @odbc_exec($ConnID,"INSERT INTO ChtCont (sIDFrom, sNameFrom, sIPFrom, sIDTo, sNameTo, sTime, sCont, bSecret, RoomID) VALUES (".$id.", '管理员', '".getenv("REMOTE_ADDR")."', 0, '大家', '".date("H:i:s")."', '【系统消息】".trim(DelQuot(htmlspecialchars($txtSend)))."', False, 0)");
            }
        }
    }
    else{
        $result=@odbc_exec($ConnID,"SELECT UserID,UserName,PassWord,LstTime,Secret,RefRate,ToID,ToName,RoomID FROM User WHERE UserID=".($id));
        if (@odbc_fetch_into($result,0,&$rArr)){
            if ($rArr[2]==$ps){
                if ($rArr[3]>=(time()-1800)){
                    if ($rArr[4]) $sSecret="True";
                    $sRefRate=$rArr[5];
                    if ($cmdSend=="送出"){
                        $sUserName=$rArr[1];
                        $sToID=$rArr[6];
                        $sToName=$rArr[7];
                        $sRoomID=$rArr[8];
                        //$sSend=AddLost(DelTag(DelQuot($txtSend)));
                        $sSend=DelQuot(htmlspecialchars($txtSend));
                        if ($chkSecret=="Yes"){
                            $sSecret="True";
                            $sTalk="悄悄说:";
                        }
                        else{
                            $sSecret="False";
                            $sTalk="说:";
                        }
                        $sRefRate=(int)($txtRefRate);
                        if ($sRefRate<2) $sRefRate=2;
                        @odbc_exec($ConnID,"UPDATE User SET EmotionID=".$sEmotion.",ColorID='".$sColor."',Secret=".$sSecret.",RefRate=".$sRefRate.",LstTime=".time()." WHERE UserID=".$id);
                        $bCht="True";
                        $bToMe="False";
                        if (substr($sSend,0,3)=="/t "){
                            $sChtCont="%m想".substr($sSend,3)."";
                            $sSecret="False";
                            $bCht="False";
                        }
                        elseif (substr($sSend,0,3)=="/: "){
                            $sChtCont="%m".substr($sSend,3)."";
                            $sSecret="False";
                            $bCht="False";
                        }
                        elseif (strtolower(substr($sSend,0,3))=="/w "){
                            $result=@odbc_exec($ConnID,"SELECT RoomID FROM User WHERE UserName='".trim(substr($sSend,3))."'");
                            if (@odbc_fetch_into($result,0,&$rArr)){
                                if ($rArr[0]>0){
                                    $result=@odbc_exec($ConnID,"SELECT RoomName FROM Room WHERE RoomID=".$rArr[0]);
                                    if (@odbc_fetch_into($result,0,&$rArr))
                                        $sChtCont="【系统消息】".trim(substr($sSend,3))."目前在房间".$rArr[0]."。";
                                    else
                                        $sChtCont="【系统消息】系统混乱了,".trim(substr($sSend,3))."目前在的房间不可识别!";
                                }
                                else
                                    $sChtCont="【系统消息】".trim(substr($sSend,3))."目前没有上线。";
                                $sSecret="True";
                                $bCht="False";
                            }
                            else{
                                $sChtCont="【系统消息】没有".trim(substr($sSend,3))."这个人。";
                                $sSecret="True";
                                $bCht="False";
                            }
                            $bToMe="True";
                        }
                        elseif (substr($sSend,0,3)=="// "){
                            $result=@odbc_exec($ConnID,"SELECT ActCont FROM Action WHERE ActID='".trim(substr($sSend,3))."'");
                            if (@odbc_fetch_into($result,0,&$rArr)){
                                $sChtCont="".trim($rArr[0])."";
                                $sSecret="False";
                                $bCht="False";
                            }
                            else $bCht="True";
                        }
                        if ($bCht=="True"){
                            $result=@odbc_exec($ConnID,"SELECT COUNT(EmotionTp) AS CNT_TP FROM Emotion WHERE EmotionTp=".$sEmotion);
                            @odbc_fetch_into($result,0,&$rArr);
                            if ($rArr[0]>0){
                                $iEmCnt=suiji($rArr[0]);
                                $result=@odbc_exec($ConnID,"SELECT EmotionCont FROM Emotion WHERE EmotionTp=".$sEmotion." AND EmotionID=".$iEmCnt);
                                if (@odbc_fetch_into($result,0,&$rArr))
                                    $sChtCont="%m".trim($rArr[0])."对%g".$sTalk.$sSend;
                                else
                                    $sChtCont="%m对%g".$sTalk.$sSend;
                            }
                            else $sChtCont="%m对%g".$sTalk.$sSend;
                            if ($sSecret=="True")
                                $sChtCont="".$sChtCont."";
                            else
                                $sChtCont="".$sChtCont."";
                        }
                        if ($bToMe=="True")
                            @odbc_exec($ConnID,"INSERT INTO ChtCont (sIDFrom, sNameFrom, sIPFrom, sIDTo, sNameTo, sTime, sCont, bSecret, RoomID) VALUES (0, '大家', '".getenv("REMOTE_ADDR")."', ".$id.", '".$sUserName."', '".date("H:i:s")."', '".$sChtCont."', ".$sSecret.", ".$sRoomID.")");
                        else
                            @odbc_exec($ConnID,"INSERT INTO ChtCont (sIDFrom, sNameFrom, sIPFrom, sIDTo, sNameTo, sTime, sCont, bSecret, RoomID) VALUES (".$id.", '".$sUserName."', '".getenv("REMOTE_ADDR")."', ".$sToID.", '".$sToName."', '".date("H:i:s")."', '".$sChtCont."', ".$sSecret.", ".$sRoomID.")");
                    }
                }
            }
        }
    }
    @odbc_close($ConnID);
}
?>

    
    if ($sSecret=="True")
        echo "t悄悄话n";
    else
        echo "t悄悄话n";
?>
    
    
    刷新:
    


  

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


你可能感兴趣的:(用PHP和ACCESS写聊天室(三))