通过权限限制成员访问的PHP代码

通过权限限制成员访问的PHP代码,php,permissions,file-access,Php,Permissions,File Access,我正在用PHP和mySQL建立一个网站。它具有前端和后端功能。只有管理员可以通过用户名和密码进入后端。现在,如果管理员想向网站添加其他子管理员,他可以这样做。通过此方法,子管理员将能够登录并执行原始管理员能够执行的所有操作 我想做什么: 我想根据自己的选择限制子管理员的访问权限,并为他们分配权限,以便他们只能访问管理面板的某些部分 我正在谈论的功能示例: 考虑到我有以下链接可由原始管理员访问。 1.增加第2条。批准第3条。删除第4条。添加用户5。编辑用户6。删除用户7。更改站点设置8。查看财务信

我正在用PHP和mySQL建立一个网站。它具有前端和后端功能。只有管理员可以通过用户名和密码进入后端。现在,如果管理员想向网站添加其他子管理员,他可以这样做。通过此方法,子管理员将能够登录并执行原始管理员能够执行的所有操作

我想做什么:

我想根据自己的选择限制子管理员的访问权限,并为他们分配权限,以便他们只能访问管理面板的某些部分

我正在谈论的功能示例:

考虑到我有以下链接可由原始管理员访问。 1.增加第2条。批准第3条。删除第4条。添加用户5。编辑用户6。删除用户7。更改站点设置8。查看财务信息9。邮件中心

如果我没有设置任何权限,那么所有子管理员都可以访问上面的所有链接。假设我创建了两个子管理员“David”和“Bob”

现在,我希望David只访问后端的以下所需部分:

  • 增加第4条。添加用户,7。更改网站设置
  • 现在,我希望Bob只访问后端的以下所需部分:

  • 增加条款2。批准条款,3。删除第4条。添加用户,9。邮件中心
  • 一、 作为原始管理员,应该能够访问所有部分,而David和Bob应该只能查看和访问分配给他们的链接和页面(或功能)。我不知道该怎么做。另外,例如,如果我想限制子管理员只访问“添加文章”页面,那么我还希望他访问它发布到的页面(考虑到输入位于添加文章页面)Add_articles_next.php页面。还要注意的是,“add_articles_next.php页面”不会出现在链接列表中的任何位置。它仅仅是一个页面,从子管理员有权访问的页面发布到

    我明白,除非我明确指定,否则系统无法知道这一点,但是的,这是我的问题。怎么做?我不是一个面向对象的人,所以使用函数的PHP代码对我来说非常棒

    我正在谈论的功能的其他实例:

    我在研究这个话题时遇到了一个特写。这看起来有点类似


    提前感谢您提供给我的任何代码。

    这已经被问了很多次了,所以。要搜索的关键字是访问控制列表(ACL)。ACL最突出的PHP解决方案之一是。它非常通用,应该可以让您根据自己的需要进行定制

    编辑您对面向对象库的评论:


    找到一个非面向对象的ACL解决方案将非常非常困难,因为市场上很少有适合PHP的好ACL(Zend是我所知道的唯一一个),而且大多数现代应用程序或多或少都采用了面向对象的方法。但别担心,看看教程。我认为在面向功能的应用程序中使用Zend_Acl不会有问题。您需要通过OOP与ACL对话,但这很简单。我认为你不必对你的应用程序做太多更改。试一试,总的来说,基本的面向对象编程并不难学。请仔细阅读PHP手册中的“类和对象”一章。

    您希望我们免费为您实现它吗?您好,谢谢您的评论。你能告诉我你打算怎么做的更多细节吗?嗨,谢谢你的回复和解决方案。实际上,我在寻找一种非面向对象的方法。Zend_ACL看起来像是在使用OOPS概念。我的应用程序。是使用函数构建的,我对OOPS概念的控制非常少。因此,如果您能提供任何不需要OOPS概念的解决方案/解决方案参考,这将非常有帮助。谢谢。我把我的评论移到了答案中。嗨,谢谢你让我知道。我会尝试一下,看看效果如何。