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

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

...全文
34 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
小逗狗 2008-04-13
  • 打赏
  • 举报
回复
看到早上你的留言了,Session("id")=UserId 改为Session("id")=Cint(UserId)

28,409

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧