【问题标题】:PHP - MYSQL How to make a web page accessible only to few roles?PHP - MYSQL 如何使网页只能由少数角色访问?
【发布时间】:2017-07-26 07:32:26
【问题描述】:

我需要 PHP 专家的帮助。我正在为“在线招聘系统”设计网页。

几乎有3个角色:

  1. 人力资源
  2. 管理员
    • 手册(Apti、技术、编程){网页}
    • 自动化(Apti、技术、编程 1、编程 2)
    • 开发(Apti,Technical,Programming 1,Programming 2,Programming

3.候选人

我在 XAMPP 中创建了以 MySQL 作为后端的 php 页面。但我面临的问题是会话是共享的。我以 HR 身份登录,但是当我在浏览器 URL 中编辑路径时,HR 能够访问管理类别页面。

如何对只有少数角色可以访问的网页进行分类?

我应该编写什么类型的会话代码?我是php新手,所以请给出正确的方向..

【问题讨论】:

  • 你在使用任何 php 框架吗?一些框架有 USER ROLES 的包。
  • 您不应依赖会话来识别用户角色。更好的方法是仅在其中存储用户名并执行 MySQL 查询以获取授予的角色。在显示页面之前,添加测试会话中的用户名是否具有显示页面所需的角色。
  • 不,Ritchie,我没有使用任何框架。在框架上指导我,以便我会努力解决这个问题..
  • 卡米尔,我会努力的。
  • 您可能想检查一下您还需要哪些其他功能,不妨研究一下socialcompare.com/en/comparison/php-frameworks-comparisonen.wikipedia.org/wiki/Category:PHP_frameworks

标签: php html mysql session xampp


【解决方案1】:

为存储的用户角色设置另一个会话

$_SESSION["role"]="HR";

$_SESSION["role"]="ADMIN";

HR 或 ADMIN 页面顶部

if($_SESSION["role"]!='HR')
{
//redirect to common page
}

和管理员一样

【讨论】:

    【解决方案2】:

    创建以下表格

    1. 角色

      • ID、名称、描述
      • 1,管理员,你的描述...
    2. 权限

      • id、key
      • 1,编辑帖子
    3. 联动

      • id、role_id、permission_id
      • 1, 1, 1

    在您的用户表上添加一个字段来存储用户角色 ID。 创建一个函数来检查链接到用户 role_id 的权限并将喜欢的权限存储在数组中的用户 role_id 即 select * from links where role_id = "your user role id" 并遍历结果或使用 join 语句获取权限密钥

    $arrayRolePermission = [];
    

    在您的我们页面上,您调用您的函数来检查用户是否具有特定角色。例如

    $user_role_id = you store this on your session
    
    if(user_can('edit_post',$user_role_id))
    {
        echo "Access Allowed";
    }
    else 
    {
        echo "Access dinied";
    }
    

    【讨论】:

      猜你喜欢
      • 2020-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      • 2021-01-27
      • 1970-01-01
      • 2014-11-17
      相关资源
      最近更新 更多