从google找的关于权限的文章都是说抽象的理论,在具体实现上还是有点不清楚,请教一下。如果有一个产品目录,权限分为查看和修改。
文件夹product下有list.php、viewdetail.php和edit.php,假如前两个文件实现查看,最后一个实现修改功能。
有“查看”权限的可以访问前两个文件,有“修改”权限的可以访问最后一个文件,现在一个用户要访问edit.php文件,如何知道这个用户对edit.php有访问权。怎么实现product/edit.php文件和"修改"功能对应,是把系统中所有文件路径(或者文件夹)都存在数据库中,就是每一个文件都必须属于一个功能,再根据用户对某个功能的权限就可以确定对某个文件的访问权?请教请教,这个问题困绕很久了。

解决方案 »

  1.   

    先了解一下MVC。这个问题就很好解决了
      

  2.   

    1 .  给用户分配等级, 当他们注册时, 默认为一级, 2 .  再给每个文件分等级或者只给有编辑功能的, 在文件开头加一个常量作为这文件的等级, 3 .  当用户访问页面时, 判断等级大于这个文件等级则可以访问, 否则退出
    不同等级, 不同功能分别可用不同变量决定如 $action = 1 ; $level = 2
      

  3.   

    1,把所有权限保存在数据库中
    2,给用户分配权限(也可以用角色)
    3,登录时获得用户的所有权限,并保存在SESSION中
    4,在需要做功能判断的页面,判断SESSION中是否有当前页面的权限,有则允许操作,没有则跳到另一个页面
      

  4.   

    入果你搜索的是 RBAC ,那么就可以得到实际的内容了
      

  5.   


    怎样判断当前页面的访问权呢?是根据当前页面的url还是为每个页面定义一个id或标记。
      

  6.   

    可能我没有把问题说清楚,假如有3个页面add.php、del.php、update.php,为了简单它们分别对应增加、删除、更新3个功能,如果系统有3个用户甲、乙、丙,分别只有增加、删除、更新权限。现在乙要访问删除功能,对应页面del.php。理论是“根据用户乙所属角色判断是否具有访问删除功能的权限,有则放行,无则跳转”,问题是如何实现这个映射关系?用户和角色可以实现关联,因为用户和角色都有一个唯一的标记(id),但角色和操作功能如何关联,是要为每一个操作功能(为了简单,一个功能对应一个页面)赋予一个唯一的标记吗?
      

  7.   

    1,把所有权限保存在数据库中 
    2,给用户分配权限(也可以用角色) 
    3,登录时获得用户的所有权限,并保存在SESSION中 
    4,在需要做功能判断的页面,判断SESSION中是否有当前页面的权限,有则允许操作,没有则跳到另一个页面