为什么总是说没有足够权限修改会员信息

ae96if 2008-04-13 09:56:03
这是登录成功的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
%>
问题是:只有超级管理员才可以修改自身的信息。普通管理员和普通用户却不能修改,总是说:你的权限不允许进行此次修改操作。

...全文
14 点赞 收藏 1
写回复
1 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
小逗狗 2008-04-13
看到早上你的留言了,Session("id")=UserId 改为Session("id")=Cint(UserId)
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2008-04-13 09:56
社区公告
暂无公告