📄 useradmin.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 + -