member.php3 :
function delquot($sStr){
$s=str_replace(chr(124),"",$sStr);
$s=str_replace(chr(39),"",$s);
$s=str_replace(chr(34),"",$s);
$s を返します。
}
$ConnID=@odbc_connect("jtfcht","admin","");
if ($ConnID){
@odbc_exec($ConnID,"UPDATE ユーザー 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) )))){
スイッチ ($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 エラー: [Microsoft][ODBC Microsoft Access 97 Driver] テーブルに要求した変更は、インデックス、主キー、またはリレーションシップに重複した値が作成されるため、成功しませんでした。データを変更してください重複を含むフィールド、SQLExecDirect の SQL 状態 23000"){
$bYes=false;
$sErr="这个房间已经有了";
$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 Wここで 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){
?>
请重新新建