背景
我正在开发一个web应用程序,其用户按安全级别1-5进行分类。这应该作为系统的主要访问级别,允许用户查看(或不查看)敏感信息。
在系统管理页面上,我有一个非常基本的页面布局.即
<?php if ($seclvl > 4) { ?>
// basic user code
<? } elseif ($seclvl > 1 && $seclvlv <= 4){ ?>
/// elevated privileges code
<? } elseif ($seclvl == 1) { ?>
// super administrator code
<? } else { ?>
//fallback if no security flag - error msg
<? } ?>
我遇到的是找出最好的方法,让系统在sec lvl 2-4中显示几个按钮,但只能被#1点击,而不必通过php display gray for sec lvl 2-4, activate lvl 1
单独指定.有人能提出比以下方法更好的方法吗?
<? } elseif ($seclvl > 1 && $seclvlv <= 4){ ?>
<? if (!$seclvl == 1) { ?>
<a href="#" class="disabled-add">Add a User</a>
<? } else { ?>
<a href="#" class="active-add">Add a User</a>
<? } ?>
//basics for seclvl 2-4... i.e:
<a href="#" class="view">View User Info</a>
<? } else { ?>
此外,现在我正在编写这段代码(还没有经过测试,但理论已经存在).我在想我的短标签嵌套if语句不起作用..。欢迎任何评论。
我真的不想为每个该死的链接/按钮指定安全访问的条件。
发布于 2014-09-17 23:28:55
您可以编写一个函数来简化它,或者像这样使用in_array()
:
<?php
if (in_array($seclvl, [2,3,4])) { // seclvl is between 1 and 5
// do something
}
..。或者像这样的功能:
<?php
is_between($seclvl, $min = 1, $max = 5)) {
if ($seclvl >= $min && $seclvl <= $max)
return true;
return false;
}
https://stackoverflow.com/questions/25880700
复制相似问题