ASP 中根据权限跳转到不同的页面的问题

来源:百度知道 编辑:UC知道 时间:2024/04/26 13:06:58
<%dim username,userpassword,jibie
username=trim(request.Form("username"))
userpassword=trim(request.Form("userpassword"))
set rs1=server.CreateObject("adodb.recordset")
rs.Open "select * from 用户表 where 用户编号='"&username&"'and 密码='"&userpassword&"'",conn,1,3
if not(rs.bof and rs.eof) then
set rs2=server.CreateObject("adodb.recordset")
rs.Open "select 级别 from 用户表 where 用户编号='"&username&"'",conn,1,3
if rs2("级别")=A then
response.Redirect("a.asp")
end if
if rs2("级别")=B then
response.Redirect("b.asp")
end if
if rs2("级别")=C then
response.Redirect("c.asp")
end if
if rs2("级别")=D then
response.Redirect("d.asp")
end if
set rs=nothing
end if

%>
我的思路是先到表中查询有没有该用户 然后查什么权限值 再根据权限值跳转

set rs2=server.CreateObject("adodb.recordset")
rs.Open "select 级别 from 用户表 where 用户编号='"&username&"'",conn,1,3

第9行的rs.Open应该是rs2.Open吧?

set rs1=server.CreateObject("adodb.recordset")
rs.Open "select * from 用户表 where 用户编号='"&username&"'and 密码='"&userpassword&"'",conn,1,3
既然设置的是 RS1,那么后面就应该用 RS1打开查询。下面这个也是一样的错误。
set rs2=server.CreateObject("adodb.recordset")
rs.Open "select 级别 from 用户表 where 用户编号='"&username&"'",conn,1,3
此外你这里的判断很多,建议用 SELECT CASE 语句。执行效率会高一些。
此外我不知道这是不是你的原代码,SQL 语句是不支持中文作为表的列名的,你要改成英文的才成。还有就是最好等级也放在RS1中一次查询,你分两次查询完全没有必要。在第一查询之后用rs1("级别") 也可以得到等级数据。