【发布时间】:2017-03-18 00:09:39
【问题描述】:
如果我的用户具有执行操作的必要权限,但我的条件不起作用,我正在尝试签入我的 PHP 代码。我可能误解了 AND/OR。请问我需要你的帮助吗?
其实我有:
if ( !in_array('ADMIN',$_SESSION['roles']) || !in_array('MANAGEMENT',$_SESSION['roles']) || $requester != $_SESSION['tnumber'] ) {
echo "you are not allowed to XXXX !";
} else {
// allowed
}
我已将这 3 个条件与 OR (||) 放在一起,但它失败了。
我想说的是:
- 如果用户没有“ADMIN”或“MANAGEMENT”权限(
$SESSION['roles']数组中的值) - 或者如果用户不是请求者(
$requester应该与$_SESSION['tnumber']相同
那么他应该有一条消息说他不被允许。
否则(如果他有 ADMIN 权限或 MANAGEMENT 权限,或者他是请求者),那么它应该可以工作。
我怎样才能改变我的条件来满足这个要求?
谢谢, 问候!
【问题讨论】:
-
你为什么不把它做成两个嵌套的 IF 语句呢?
-
尝试使用 echo $_SESSION['roles'] 和 $_SESSION['tnumber'] 和 $requester 找出你得到的值
标签: php if-statement conditional-statements