case "/u"
newsql="select WhoCreate from RoomInfo where WhoCreate='" & UserID & "' and RoomName='" & session("myroom") & "'"
set newrecordset=newconn.Execute (newsql)
if newrecordset.bof then
application(UserID)="不好意思,你無權解開這個房間或者不在那個房間!<br><br>" & application(UserID)
else
newsql="update RoomInfo set IfLocked=false where RoomName='" & session("myroom") & "'"
newconn.Execute (newsql)
application(UserID)="你已經解開了這個房間!<br><br>" & application(UserID)
end if
application(UserID)= "<br>" & info & "<br>" & application(UserID)
case "/t"
if right(left(command,3),1)<>":" then
application(UserID)="<br>命令輸入錯誤!<br><br>" & application(UserID)
else
newsql="select WhoCreate from RoomInfo where WhoCreate='" & UserID & "' and RoomName='" & session("myroom") & "'"
set newrecordset=newconn.Execute (newsql)
if newrecordset.bof then
application(UserID)="不好意思,你無權修改這個房間的話題!<br><br>" & application(UserID)
else
newsql="update RoomInfo set Topic='" & mid(command,4) & "' where RoomName='" & session("myroom") & "'"
newconn.Execute (newsql)
newsql="select UserID from UserOnLine where RoomName='" & session("myroom") & "'"
set t_newrecordset=newconn.Execute (newsql)
do while not t_newrecordset.eof
application(t_newrecordset(0))="房間話題被修改為<font color=vbpurplea>" & mid(command,4) & "</font>!<br><br>" & application(t_newrecordset(0))
t_newrecordset.movenext
loop
t_newrecordset.close
set t_newrecordset=nothing
'application(UserID)="你已經修改這個房間的話題為<font color=vbpurplea>" & mid(command,4) & "</font>!<br><br>" & application(UserID)
end if
end if
case else
application(UserID)= "<br>沒有這個命令,請用/h查看幫助<br>" & application(UserID)
end select
else
if request.form("D1")<>"all" then
id_name=Request.Form ("D1")
'Response.Write id_name
temppos=instr(1,id_name,",",1)
yourid=mid(id_name,1,temppos-1)
yournickname=mid(id_name,temppos+1)
end if
set myrecord=server.CreateObject ("ADODB.Recordset")
mysql="select * from UserOnLine where RoomName='" & myroom & "'"
myrecord.Open mysql,"DSN=ChatRoom",1,3
'application.lock
if request.form("D1")="all" or request.form("C1")<> "ON" then
do while not myrecord.EOF
application(myrecord("UserId"))=tempstr & application(myrecord("UserId"))
myrecord.MoveNext
loop
application(myroom)=tempstr & Application(myroom)
if len(application(myroom))>1000 then
length2=len(application(myroom))
temppos=instrrev(application(myroom),"<br>",length2)-1
application(myroom)=mid(application(myroom),1,temppos)
end if
if len(application(myname))>20000 then
length1=len(application(myname))
temppos=instrrev(application(myname),"<br>",length1-4)-1
application(myname)=mid(application(myname),1,temppos)
end if
application.unlock
end if
'Response.Write (application(UserID))
Response.Write application(UserID)
set newconn=server.CreateObject ("ADODB.Connection")
newconn.ConnectionString ="DSN=ChatRoom"
newconn.Open
if Request.ServerVariables ("REQUEST_METHOD")="GET" then
UserID=Request.QueryString ("user")
myname=session("myname")'Request.QueryString ("roomname")
end if
if Request.ServerVariables ("REQUEST_METHOD")="POST" then
newsql="update UserOnLine set TimeLastTalking='" & now & "' where UserID='" & UserID & "'"
newconn.Execute (newsql)
Application.Lock
if left(Request.Form ("T1"),1)="/" then
command=Request.Form ("T1")
select case left(Request.Form ("T1"),2)
case "/j" '加入新房間
newroom=trim(mid(Request.Form ("T1"),4))
newsql="select RoomName,IfLocked,WhoCreate from RoomInfo where RoomName='" & newroom & "'"
set newrecord=newconn.Execute (newsql)
'Response.Write newrecord("RoomName")
if newrecord.bof or newrecord.eof then
application(UserID)="沒有這個房間號!<br><br>" & application(UserID)
elseif newrecord("IfLocked")=true then
newsql="select UserID from UserOnLine where RoomName='" & newroom & "' and UserID='" & newrecord(2) & "'"
set myrecord=newconn.Execute (newsql)
if not myrecord.BOF then
application(UserID)="這個房間已經上鎖,不能進入!<br><br>" & application(UserID)
else
Create_Leaved=true
newsql="update RoomInfo set IfLocked=false where RoomName='" & newroom & "'"
end if
elseif Create_Leaved=false then
'changed=true
application(UserID)=application(newroom)
newsql1="select UserID from UserOnLine where RoomName='" & newroom & "'"
set newrecord1=server.CreateObject ("ADODB.Recordset")
newrecord1.Open newsql1,"DSN=ChatRoom",1,3
do while not newrecord1.eof
tempname=cstr(newrecord1("UserID"))
'Response.Write newrecord1("UserID")
if tempname<>UserID then
application(tempname)="<br>" & mynickname & "大搖大擺地進來了!(請刷新)<font color=blue size=1>(" & time() & ")</font><br><br>" & application(tempname)
end if
newrecord1.movenext
loop
newsql3="update RoomInfo set HowManyUsers=HowManyUsers+1 where RoomName='" & newroom & "'"
newconn.Execute (newsql3)
newsql4="update RoomInfo set HowManyUsers=HowManyUsers-1 where RoomName='" & myroom & "'"
newconn.Execute (newsql4)
newsql2="update UserOnLine set RoomName='" & newroom & "' where UserID='" & UserID & "'"
newconn.Execute (newsql2)
changed=true
newrecord1.Close
set newrecord1=nothing
end if
case "/r" '查看房間信息
newsql="select * from RoomInfo"
set newrecordset1=newconn.Execute (newsql)
do while not newrecordset1.eof
info=info & newrecordset1("RoomName") & "--" & newrecordset1("HowManyUsers") & "--" & newrecordset1("Topic") & "--" & newrecordset1("IfLocked") & "--" & newrecordset1("WhoCreate") & "<br>"
newrecordset1.movenext
loop
'Response.Write info
application(UserID)=info & "<br>" & application(UserID)
case "/w" '查看聊天室成員信息
if len(trim(Request.Form ("T1")))=2 then
newsql="select * from UserOnLine"
set newrecordset2=newconn.Execute (newsql)
do while not newrecordset2.eof
info=info & newrecordset2("UserId") & "--" & newrecordset2("RoomName") & "--" & newrecordset2("IpAdd") & "--" & newrecordset2("TimeLogin") & "<br>"
newrecordset2.movenext
loop
application(UserID)=info & "<br>" & application(UserID)
else
if right(left(Request.Form ("T1"),3),1)<>":" then
info="命令行輸入錯誤<br><br>"
application(UserID)=info & application(UserID)
else
temproom=mid(trim(Request.Form ("T1")),4)
newsql="select RoomName from RoomInfo where RoomName='" & temproom & "'"
set newrecord3=newconn.Execute (newsql)
if not newrecord3.bof then
newsql="select * from UserOnLine where RoomName='" & temproom & "'"
set newrecordset2=newconn.Execute (newsql)
if newrecordset2.bof then
application(UserID)="<br>該房間暫時沒有人!<br><br>" & application(UserID)
else
do while not newrecordset2.eof
info=info & newrecordset2("UserId") & "--" & newrecordset2("RoomName") & "--" & newrecordset2("IpAdd") & "--" & newrecordset2("TimeLogin") & "<br>"
newrecordset2.movenext
loop
application(UserID)="<br>" & info & "<br>" & application(UserID)
end if
else
info="<br>沒有<font color=vbred><strong>" & temproom & "</strong></font>這個房間!<br><br>"
application(UserID)=info & application(UserID)
end if
end if
end if
case "/l" '鎖住本房間
'lockroom=mid(Request.Form ("T1"),4)
newsql="select WhoCreate from RoomInfo where WhoCreate='" & UserID & "' and RoomName='" & session("myroom") & "'"
set newrecordset=newconn.Execute (newsql)
if newrecordset.bof then
application(UserID)="不好意思,你無權鎖住這個房間!<br><br>" & application(UserID)
else
newsql="update RoomInfo set IfLocked=true where RoomName='" & session("myroom") & "'"
newconn.Execute (newsql)