ASP中的if语句问题

来源:百度知道 编辑:UC知道 时间:2024/05/22 08:00:58
if session("shenfen")<>"管理员" and session("shenfen")<>"超级管理员" then
response.write"您未登陆或权限不够"
response.end
end if
为什么用
if session("shenfen")<>"管理员" or session("shenfen")<>"超级管理员"
就不管用了呢~~!!!

举个例子给你说明:
如果你的session("shenfen")="超级管理员"
这时
if session("shenfen")<>"管理员" or session("shenfen")<>"超级管理员"
在session("shenfen")<>"管理员"的时候,这个if就已经成立了,它就不管or 后面是否成立,那么,如果是“超级管理员”登陆,就也会被认为是没有权限的。
而用 and 它还要判断 and 后面是否成立,那么,这时,“超级管理员”使得后面的判断不成立,所以“超级管理员”是有权限的

换句话说,or 就是只要满足其中一个条件,if 就成立
and 需要同时满足两个条件,if 才成立

你可以response.write("shenfen")
看看里面到底是什么

可能你定义 session 对象时,没定义正确,

用 aa=session("shenfen")
response.write(aa)
response.end
看下 是什么?

response.end
end if

先结束了 在有end if

因为session("shenfen")的状态只有一种,所以“or”总有一种状态为真。

楼上说对拉