PHP函数用于创建user_level特定页面

时间:2011-06-21 01:26:13

标签: php security

我使用以下代码检查登录级别 - 创建必须具有特定访问级别的页面的最优雅方法是什么?

function check_login($level) {

    $username_s = mysql_real_escape_string($_SESSION['username']); 

    $sql = "SELECT user_level, restricted FROM login_users WHERE username = '$username_s'"; 
    $result = mysql_query($sql);
    $row = mysql_fetch_array($result);

    $user_level = $row['user_level'];
    $restricted = $row['restricted'];

    $sql = "SELECT level_disabled FROM login_levels WHERE level_level = '$user_level'"; 
    $result = mysql_query($sql);
    $row2 = mysql_fetch_array($result);

    $disabled = $row['level_disabled'];

    if($disabled != 0) { include('disabled.php'); exit();

    } elseif($restricted != 0) { include('disabled.php'); exit();

    } elseif($user_level <= $level) { // User has authority to view this page.      

    } else { include('user_level.php'); exit();

    }

}

2 个答案:

答案 0 :(得分:2)

就编码的简易性而言,使用mod_rewrite将所有页面请求发送回从数据库中提取内容的单个脚本。数据库可以将内容与查看所述内容所需的用户级别相关联,并且脚本可以强制执行该内容。

答案 1 :(得分:0)

你正在寻找一种名为ACL的东西,并且有许多方法可以在PHP和Apache中实现它。对于PHP,Zend_Acl似乎是最好的之一。就个人而言,我对重新发明轮子感到内疚,但迄今为止它一直在努力。