⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 content.asp

📁 聊天室
💻 ASP
字号:
<% 
dim info
dim changed

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

	
	myname=Request.Form ("userid")
	UserID=myname
	myroom=session("myroom")'Request.Form ("roomname")
	mynickname=Request.Form ("mynickname")
	
	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)

				application(UserID)="你已经进入了房间" & newroom & "<br><br>" & application(UserID)
				session("myroom")=newroom
				
				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)

				application(UserID)="你已经锁住了这个房间!<br><br>" & application(UserID)
			end if
				
		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
			
		case "/c"
			application(session("myname"))=""	
		
		
		case "/b"    '退出聊天室
%>

<script language="javascript">
<!--
	top.location.href ="byebye.asp"
//-->
</script>


<%
		session.Abandon 
		Response.End 
		case "/h"  '出现帮助系统
			
			info="/h---出现帮助提示<br>"
			info=info & "/j:roomname---加入新的房间<br>"
			info=info & "/r---查看当前房间信息<br>"
			info=info & "/w:roomname---查看当前拥护情况<br>"
			info=info & "/l--锁住当前房间,只有创建者才能锁住<br>"
			info=info & "/b--退出聊天室<br>"
			info=info & "/u--解开某个房间<br>"
			info=info & "/t:newtopic--修改话题,只有创建者才能修改<br>"
			info=info & "/c--清除聊天内容<br>"
			
			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

	if request.form("D1")="all" then
		tempstr="<font color='" & request.form("D2")  & "'>" & mynickname & Request.Form ("facing") & "说:  " & request.form("T1") & "</font><font color=blue size=0.5>(" & time() & ")</font><br>"
	else
		tempstr="<font color='" & request.form("D2")  & "'>" & mynickname & "只对" & yournickname & Request.Form ("facing") & "说:  " & request.form("T1") & "</font><font color=blue size=0.5>(" & time() & ")</font><br>"
	end if


	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
	

else
	tempstr="<marquee border='0' behavior='alternate'><font color='" & request.form("D2")  & "'>" & mynickname & "对" & yournickname & Request.Form ("facing")  & "说:" & request.form("T1") &"</font></marquee>" &"<font colovrr=blue size=0.5>(" & time() & ")</font><br>"
	application(yourid)=tempstr & application(yourid)
	application(myname)=tempstr & Application(myname)
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)

else

Response.Write application(UserID)

end if

newconn.Close 
set newconn=nothing

if changed=true then			
%>

<script language="javascript">
<!--
parent.frames[1].location.href="send.asp"

//-->
</script>
<%
	end if
%>

<html>
<head>
<meta http-equiv="refresh" content="10;url=content.asp?user=<% =UserID %>">

<title>聊天内容</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
<base target="ltop">
</head>

<body bgcolor="rgb(255,255,255)">


</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -