Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将我的用户登录系统更改为多层';ed登录_Php - Fatal编程技术网

Php 如何将我的用户登录系统更改为多层';ed登录

Php 如何将我的用户登录系统更改为多层';ed登录,php,Php,此时,我的网站上有一个简单的管理员登录部分,管理员可以从中添加/编辑页面内容添加/编辑页面或主题。 现在,我正在考虑在这个项目中,这个网站的工作方式需要。我需要在系统中添加多级用户, 我认为在我的表集合中添加一个用户级别作为INT,可以实现这一点, 然后在我的页面中,我的“已登录”函数调用,我也可以调用用户级别的INT,并将其存储在会话中。 这样,如果用户设置为级别1显示链接a, 如果用户设置为级别2,则显示链接b。 还是我看得不对?没有必要重新发明轮子。您需要的是访问控制列表(ACL)功能。有

此时,我的网站上有一个简单的管理员登录部分,管理员可以从中添加/编辑页面内容添加/编辑页面或主题。 现在,我正在考虑在这个项目中,这个网站的工作方式需要。我需要在系统中添加多级用户, 我认为在我的表集合中添加一个用户级别作为
INT
,可以实现这一点, 然后在我的页面中,我的
“已登录”
函数调用,我也可以调用用户级别的
INT
,并将其存储在会话中。 这样,如果用户设置为级别
1
显示链接
a
, 如果用户设置为级别
2
,则显示链接
b

还是我看得不对?

没有必要重新发明轮子。您需要的是访问控制列表(ACL)功能。有很多可用的解决方案,你可以纳入到你的项目。就我个人而言,我使用Zend的Acl库,但还有更多的风格

工作原理(基本版本):您分配一些ACL角色,例如“管理员”、“工作人员”、“用户”、“来宾”,其中“来宾”将是默认的匿名访问者。当用户登录时,您将在该用户的会话中保存ACL角色

然后创建一个ACL类,将这些角色分配给您的资源。例如,“管理员”可以读取和编辑任何人的数据,“员工”可以读取“管理员”、“员工”和“用户”数据,但只能编辑自己的和“用户”数据,“用户”可以读取其他“用户”数据,但只能编辑自己的数据


在应用程序中需要检查用户是否被允许执行某些操作或访问网站的某些部分(如CMS)的任何时候,您都可以对照ACL规则检查以执行操作/允许访问或告诉用户他/她未获得授权。

否,看起来不错。去做吧。再深入一点,使用数组来存储权限,这样你就可以在系统中进行更精细的权限管理。如果你的解决方案适合你的需要,它是很好的。在某些情况下,您可能希望从“级别”切换到更灵活的级别,例如“角色”或“权限”等。但是,构建您尚未使用的内容毫无意义(请参阅)是的,好的,我刚刚读了一些关于你的评论@YAGNI的文章,是的,这给我留下了一点思考的余地,也许在某个时候,你会愿意和我在一起,我们可以看看我在为什么工作,我已经拥有了什么