为什么总是说没有足够权限修改会员信息
这是登录成功的index页面的最后几行。
<%
if session("IsAdmin")=TRUE then
%>
<a href="admin.asp">会员管理</a>
<%
end if
%>
<a href="modify.asp?id=
<%=Session("id")%>">修改信息</a>
<a href="logout.asp">退出登录</a></div>
</td>
</tr>
</table>
<br>
</body>
</html>
这是modify修改页面的代码:
Dim UserId
UserId=request.querystring("id")
'如果ID号为空,则操作非法,要求重新登录
if UserId="" then
%>
<html>
<body>
<script language="vbscript">
<!--
Window.alert"请重新登录"
History.back
-->
</script>
</body>
</html>
<%end if%>
<%
'用户ID必须为数字,防止恶意攻击来试探数据库内容
if not IsNumeric(UserId) then
%>
<html>
<body>
<script language="vbscript">
<!--
Window.alert"会员编号应为数字"
History.back
-->
</script>
</html>
<%end if%>
<%
'变量定义
Dim flag,UserClass
'释放允许修改用户资料的标志
flag=FALSE
'如果进行修改操作的是超级管理员,可以进行任何用户的资料修改
if Session("Class")=1 then
flag=TRUE
end if
'如果是管理员,修改自己的资料,则flag为TRUE
if Session("Class")=2 and Session("id")=UserId then
flag=TRUE
end if
'如果是普通会员,修改自己的资料,则flag为TRUE
if Session("Class")=9 and Session("id")=UserId then
flag=TRUE
end if
'根据用户ID检索数据库,看用户是否存在
Dim objConn,strSQL,objRS,sql
Set objConn=server.createobject("ADODB.Connection")
sql="MEMBER.mdb"
objConn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath(sql)
strSQL="Select * from MEMBER Where [ID]="&UserId
set objRS=server.createobject("adodb.recordset")
objRS.Open strSQL,objConn,1,3
if objRS.bof and objRS.eof then
%>
<html>
<body>
<script language="vbscript">
<!--
Window.alert"用户不存在"
History.back
-->
</script>
</body>
</html>
<%end if%>
<%
'该ID的用户存在,获得该ID用户的级别
if not(objRS.bof and objRS.eof) then
UserClass=ObjRS.Fields("CLASS")
end if
'如果是管理员对普通会员进行资料修改,则flag为TRUE
if Session("Class")=2 then
if UserClass=9 then
flag=TRUE
end if
end if
'如果flag不为真,则表示用户权限不够
if flag<>TRUE then
%>
<html>
<body>
<script language="vbscript">
<!--
Window.alert"你的权限不允许进行此次修改操作"
History.back
-->
</script>
</body>
</html>
<%
else
'写入Session变量,表示允许更新记录
Session("UpdatePermitted")=TRUE
%>
问题是:只有超级管理员才可以修改自身的信息。普通管理员和普通用户却不能修改,总是说:你的权限不允许进行此次修改操作。