背景
我正在开发一个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
<? } ?>
我遇到的是找出最好的方法,让系统在第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语句实际上不起作用。。。欢迎任何评论。
我真的真的不想为每个该死的链接/按钮指定安全访问条件。
您可以编写一个函数来简化它,或者像这样使用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;
}