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

📄 useradmin.asp

📁 一个网站聊天室的模型
💻 ASP
字号:
<%@ LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>注册用户管理</title>
<style fprolloverstyle>
A:hover {color: red; font-weight: bold}
</style>
</HEAD>
<BODY bgcolor="#F5F5F5">
<%
'这个页面对用户的管理只是可以封用户的帐号

'这部分代码与下面的if Request.ServerVariables ("REQUEST_METHOD")="POST" then语句中的内容基本相同,可参考其中的注释
'如果用户通过管理员登录验证,就...
if session("admin_pass")="ok" then
	'这个条件控制有2个方面的重要作用:一方面是如果在其他页面(onlineadmin.asp和adminspeak.asp)中通过管理员登录过,
	'进入该页面时就直接执行这个if语句中的代码,就用不到该页面后半部分if Request.ServerVariables ("REQUEST_METHOD")="POST" then语句中的代码
	'另一方面是在提交本页面中管理内容时不必重新进行管理员帐号,密码和权限的验证就可以直接提交到数据库中


'创建数据库连接对象
set newconn=server.CreateObject ("ADODB.Connection")
	dbpath=server.mappath("chatroom.mdb")
	newconn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&dbpath
	
	
    '以下程序段是执行封锁用户的帐号的
	'逐项检查管理页面提交的封锁用户帐号的复选框cUserID
		for each item in Request.Form ("cUserID")
	'使用变量记录用户的帐号,item的值就是该用户的帐号,因为帐号能唯一确定一个用户
		hisid=item
	'如果复选框被选中了,就封锁用户的帐号,并把用户从聊天室中清除出去
		if item <>"" then
		'从Fault表中查找该用户以前是否有犯规的记录.如果有,就更新该用户的记录
		'如果没有,就在Fault表中插入一条新记录,记录该用户的帐号被封
		newsql="select FaultUserID from Fault where FaultUserID='" & item & "'"
		set newrecord=newconn.Execute (newsql)
		if not newrecord.bof then
		newsql1="update Fault set IDIfClosed=true,IDCloseCount=idclosecount+1,IDCloseTime='" & date() & "',IDOpenTime='" & dateadd("d",2,date()) & "' where FaultUserID='" & hisid & "'"
		newconn.Execute (newsql1)
		else
			newsql2="insert into Fault(FaultUserID,IDCloseCount,IDCloseTime,IDOpenTime,idifclosed) values ('" & hisid & "',1,'" & date() & "','" & dateadd("d",2,date()) & "',1)" 
			newconn.Execute (newsql2)
		end if
			'反馈给管理员执行的封某用户的帐号的操作已经执行成功
		Response.Write "<br>用户<font color=vbred>" & item & "</font>已经被封!<br>"		
			newrecord.close
	    set newrecord=nothing
		end if
		next		
	
'从user表和Fault表中查找在线用户的相关信息.	
	newsql2="select UserID,warnings,IDclosecount,IDIfClosed,IDCloseTime,IDOpenTime,VisitCount from user left join fault on user.userid=fault.faultuserid"
	
	set newrecord2=newconn.Execute (newsql2)
	if not newrecord2.bof then
%>
<p align="center"><font color="#FF6633"><strong><big>注册用户信息管理</big></strong></font></p>
<form method="POST" action="useradmin.asp" name="forever">
  <table width="65%" border="1" align="center">
    <tr>
      <td><div align="center">用户名</div></td>
      <td><div align="center">警告次数</div></td>
      <td><div align="center">被封次数</div></td>
      <td><div align="center">ID是否被封</div></td>
      <td><div align="center">ID被封时间</div></td>
      <td><div align="center">ID解封时间</div></td>
      <td width="14%"><div align="center">访问次数</div></td>
      <td width="9%"><div align="center">封ID</div></td>
    </tr>
    <%
		do while not newrecord2.eof
%>
    <tr>
      <td><div align="center">
          <% =newrecord2(0) %>
        </div></td>
      <td><div align="center">
          <% =newrecord2(1) %>
        </div></td>
      <td><div align="center">
          <% =newrecord2(2) %>
        </div></td>
      <td><div align="center">
          <% =newrecord2(3) %>
        </div></td>
      <td><div align="center">
          <% =newrecord2(4) %>
        </div></td>
      <td><div align="center">
          <% =newrecord2(5) %>
        </div></td>
      <td><div align="center">
          <% =newrecord2(6) %>
        </div></td>
      <%
		if newrecord2(3)=true then
%>
      <td width="11%"><div align="center">
          <input type="checkbox" name="cUserID" value=<% =newrecord2(0) %> checked>
        </div></td>
      <%
		else
%>
      <td width="11%"><div align="center">
          <input type="checkbox"  name="cUserID" value=<% =newrecord2(0) %>>
        </div></td>
      <%
		end if
%>
    </tr>
    <%
			newrecord2.movenext
		loop
	end if    '与if not newrecord2.bof then语句相对应
	'关闭记录集对象
			newrecord2.close
	    set newrecord2=nothing
%>
  </table>
  </center>
  <div align="center">
    <center>
    </center>
  </div>
  <div align="center">
    <center>
    </center>
  </div>
  <center>
  <table width="136" align="center">
    <tr>
      <td width="70"><div align="center">
          <input type="submit" value="提交" name="submit">
        </div></td>
      <td width="10"><div align="center"></div></td>
      <td width="67"><div align="center">
          <input type="reset" value="重填" name="reset">
        </div></td>
    </tr>
  </table>
</form>
<!--链接到在线用户管理和发送信息页面-->
<center>
  <a href="onlineadmin.asp">在线用户管理</a>
</center>
<center>
  <a href="adminspeak.asp">发送信息</a>
</center>
<%
else     '这个else是与if session("admin_pass")="ok" then语句相对应的

'以下这部分是用户直接请求该页面时的处理过程
'因为有if session("admin_pass")="ok" then语句的控制,所以如果在其他页面(onlineadmin.asp和adminspeak.asp)中通过管理员登录过,
'即session变量已经被赋值为ok,那么当请求进入该页面时就用不到这部分的,而只用到上面那些代码
'但如果用户没有在其他页面(onlineadmin.asp和useradmin.asp)中登录过管理员页面,当直接请求该页面时,就要用到这部分进行管理员登录界面的验证


'如果是通过POST方法将信息提交到该页面的,即是通过本页面中的管理员登录表单登录到该页面的,
'就判断管理员帐号和密码是否正确,他的权限是否是9,即是否具有管理员权限
if Request.ServerVariables ("REQUEST_METHOD")="POST" then

'创建数据库连接对象
set newconn=server.CreateObject ("ADODB.Connection")
	dbpath=server.mappath("chatroom.mdb")
	newconn.open "driver={Microsoft Access Driver (*.mdb)};dbq="&dbpath
	
'从user表中查找用户的帐号和密码是否正确
	newsql="select UserID,PWD,Right from User where UserID='" & Request.Form ("Admin_UID") & "' and PWD='" & Request.Form ("Admin_PWD") & "'"
	set newrecord0=newconn.Execute (newsql)
	if newrecord0.bof then
		Response.Write  "帐号密码输入错误!"
		Response.End 
	else
	'判断用户是否具有管理员权限
		if newrecord0(2)<>9 then
			Response.Write ("你没有权限进入,只有管理员才可以!")
			Response.End 
		else
		
		'如果帐号和密码都正确,而且具有管理员权限,就定义一个session变量记录管理员登录成功
		'这不仅是为了在登录其他管理页面时不必重新进行管理员帐号,密码和权限的验证,
		'同时保证了在提交本页面中管理内容时不必重新进行管理员帐号,密码和权限的验证
		session("admin_pass")="ok"	
    '以下程序段是执行封锁用户的帐号的
	
	'逐项检查管理页面提交的封锁用户帐号的复选框cUserID
		for each item in Request.Form ("cUserID")
	'使用变量记录用户的帐号,item的值就是该用户的帐号,因为帐号能唯一确定一个用户
		hisid=item
	'如果复选框被选中了,就封锁用户的帐号,并把用户从聊天室中清除出去
		if item <>"" then
		'从Fault表中查找该用户以前是否有犯规的记录.如果有,就更新该用户的记录
		'如果没有,就在Fault表中插入一条新记录,记录该用户的帐号被封
		newsql="select FaultUserID from Fault where FaultUserID='" & item & "'"
		set newrecord=newconn.Execute (newsql)
		if not newrecord.bof then
		newsql1="update Fault set IDIfClosed=true,IDCloseCount=idclosecount+1,IDCloseTime='" & date() & "',IDOpenTime='" & dateadd("d",2,date()) & "' where FaultUserID='" & hisid & "'"
		newconn.Execute (newsql1)
		else
			newsql2="insert into Fault(FaultUserID,IDCloseCount,IDCloseTime,IDOpenTime,idifclosed) values ('" & hisid & "',1,'" & date() & "','" & dateadd("d",2,date()) & "',1)" 
			newconn.Execute (newsql2)
		end if
			'反馈给管理员执行的封某用户的帐号已经执行成功
		Response.Write "<br>用户<font color=vbred>" & item & "</font>已经被封!<br>"		
			newrecord.close
	    set newrecord=nothing
		end if    '与if item <>"" then语句相对应
		next
		end if    '与if newrecord0(2)<>9 then语句相对应
	end if    '与if newrecord0.bof then语句相对应
	
	'从user表和Fault表中查找用户的相关信息,并用表格将信息列举出来
	newsql1="select UserID,warnings,IDclosecount,IDIfClosed,IDCloseTime,IDOpenTime,VisitCount from user left join fault on user.userid=fault.faultuserid"
'由于通常情况下,user表中用户的数量一般比Fault表中用户的数量多,应该采用"left join"语句允许fault表中的字段为空,on后的语句是两个表连接的条件
'LEFT JOIN 操作可以创建一个左外部联接。左外部联接包含两个表中第一个(左)表中的所有记录,第二个(右)表中可以没有匹配的记录值		
'还有右外部联接RIGHT JOIN 操作,右外部联接包含两个表中第二个(右)表中的所有记录,而第一个(左)表中可以没有匹配的记录值
'left join和right join都只是access数据库中的外部连接操作,各种不同的数据库中的外部连接的操作语句不尽相同
	
	set newrecord1=newconn.Execute (newsql1)
	if not newrecord1.bof then
%>
<p align="center"><font color="#FF6633"><strong><big>注册用户信息管理</big></strong></font></p>
<!--提交管理内容的表单,该表单是将管理内容提交到该页面本身进行处理的-->
<form method="POST" action="useradmin.asp" name="forever">
  <table width="65%" border="1" align="center">
    <tr>
      <td><div align="center">用户名</div></td>
      <td><div align="center">警告次数</div></td>
      <td><div align="center">被封次数</div></td>
      <td><div align="center">ID是否被封</div></td>
      <td><div align="center">ID被封时间</div></td>
      <td><div align="center">ID解封时间</div></td>
      <td width="14%"><div align="center">访问次数</div></td>
      <td width="9%"><div align="center">封ID</div></td>
    </tr>
    <%
		do while not newrecord1.eof
%>
    <tr>
      <td><div align="center">
          <% =newrecord1(0) %>
        </div></td>
      <td><div align="center">
          <% =newrecord1(1) %>
        </div></td>
      <td><div align="center">
          <% =newrecord1(2) %>
        </div></td>
      <td><div align="center">
          <% =newrecord1(3) %>
        </div></td>
      <td><div align="center">
          <% =newrecord1(4) %>
        </div></td>
      <td><div align="center">
          <% =newrecord1(5) %>
        </div></td>
      <td><div align="center">
          <% =newrecord1(6) %>
        </div></td>
      <%
		if newrecord1(3)=true then
%>
      <td width="11%"><div align="center">
          <input type="checkbox" name="cUserID" value=<% =newrecord1(0) %> checked>
        </div></td>
      <%
		else
%>
      <td width="11%"><div align="center">
          <input type="checkbox"  name="cUserID" value=<% =newrecord1(0) %>>
        </div></td>
      <%
		end if
%>
    </tr>
    <%
			newrecord1.movenext
		loop
	end if    '与if not newrecord1.bof then语句相对应
	'关闭记录集对象
			newrecord0.close
	    set newrecord0=nothing
			newrecord1.close
	    set newrecord1=nothing
%>
  </table>
  <div align="center">
    <center>
    </center>
  </div>
  <div align="center">
    <center>
    </center>
  </div>
  <center>
  <table width="136" align="center">
    <tr>
      <td width="70"><div align="center">
          <input type="submit" value="提交" name="submit">
        </div></td>
      <td width="10"><div align="center"></div></td>
      <td width="67"><div align="center">
          <input type="reset" value="重填" name="reset">
        </div></td>
    </tr>
  </table>
</form>
<center>
  <!--链接到在线用户管理和发送信息页面-->
  <a href="onlineadmin.asp">在线用户管理</a>
</center>
<center>
  <a href="adminspeak.asp">发送信息</a>
</center>
<%
else      '与if Request.ServerVariables ("REQUEST_METHOD")="POST" then语句相对应
%>
<form action="useradmin.asp" method="POST">
  <p>
  <div align="center">
    <center>
      请输入帐号:
      <input name="Admin_UID"  type="text" maxlength="10">
    </center>
  </div>
  </p>
  <div align="center">
    <center>
      请输入密码:
      <input name="Admin_PWD"  type="password" maxlength="10">
    </center>
  </div>
  <center>
  <table width="134" align="center">
    <tr>
      <td width="57"><div align="center">
          <input type="submit" value="提交" name="submit">
        </div></td>
      <td width="10"><div align="center"></div></td>
      <td width="55"><div align="center">
          <input type="reset" value="重填" name="reset">
        </div></td>
    </tr>
  </table>
</form>
<%
end if    '与if Request.ServerVariables ("REQUEST_METHOD")="POST" then语句相对应
end if    '与if session("admin_pass")="ok" then语句相对应
%>
</BODY>
</HTML>

⌨️ 快捷键说明

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