使用PHP过滤具有用户安全级别的页面呈现,但禁用非特权用户的链接

时间:2014-09-17 01:00:46

标签: php html security user-interface mysqli

背景

我正在开发一个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 {单独指定{1}} ......任何人都可以建议比以下方法更好的方法:

display gray for sec lvl 2-4, activate lvl 1

此外,现在我正在编写这段代码(仍未经过测试,但理论还在那里)......我认为我的短标签嵌套,如果语句实际上不起作用......任何评论欢迎。

我真的真的不想为每个friggin链接/按钮指定安全访问条件。

1 个答案:

答案 0 :(得分:1)

您可以编写一个函数以使其更容易,或者使用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;
}