Php 在具有3个级别的登录系统中,有什么更好的方法在数据库和登录系统中创建表?

Php 在具有3个级别的登录系统中,有什么更好的方法在数据库和登录系统中创建表?,php,mysql,login,logic,Php,Mysql,Login,Logic,在具有3个级别的登录系统中,有什么更好的方法在数据库和登录系统中创建表 这三个级别是:“客户端”、“附加”和“管理员” “客户”将访问您的所有帐户详细信息,您可以注册“其他”。 “附加”将只能访问一些细节。 “管理员”可以注册新的“客户端” 1) 只有一个登录url,然后让系统检查用户的级别,然后指向正确的页面,这样安全吗 地点。com/登录 如果是额外的或客户将直接到->网站。com/客户端 如果管理员将直接访问站点。com/管理员 2) 或者最好的方法是为客户端和其他站点创建一个日志文件。c

在具有3个级别的登录系统中,有什么更好的方法在数据库和登录系统中创建表

这三个级别是:“客户端”、“附加”和“管理员”

“客户”将访问您的所有帐户详细信息,您可以注册“其他”。 “附加”将只能访问一些细节。 “管理员”可以注册新的“客户端”

1) 只有一个登录url,然后让系统检查用户的级别,然后指向正确的页面,这样安全吗

地点。com/登录 如果是额外的或客户将直接到->网站。com/客户端 如果管理员将直接访问站点。com/管理员

2) 或者最好的方法是为客户端和其他站点创建一个日志文件。com/client/login和其他链接到管理员站点。com/admin/login

3) 我想我应该创建一个只包含所有用户的ID、登录名、密码和级别的表:客户端、附加用户和管理员,并将查询设置为该表以查看用户是否存在,以及哪些资源可用,然后根据级别在其他表中查找数据,这是安全的做法吗

4) 我还考虑使用内部连接在3个表中进行扫描,以查看用户是否具有访问系统的权限。并让表中的ca级数据完全分离。这是一个有效的选择吗

其他想法?替代品

  • 如果您想要的话,一个登录URL就足够了。您应该将用户的授权级别与他们的身份验证(他们的登录名、电子邮件等)联系起来。一旦他们通过身份验证(登录),您就可以从DB获得他们的授权,并将该信息存储在会话中。用户不能触摸这个

  • 我不认为这有什么好处,但如果你愿意,你可以这样做。您仍然需要检查每个页面上的授权级别,以确定登录用户是否能够看到该页面

  • 这在任何特定方面都不是不安全的,但它似乎具有您可能想要的关系完整性

  • 这没什么不同,但是为每个访问级别单独设置一个表是没有意义的。除非访问功能是互斥的,否则您最多需要两个表(一个用于用户,一个用于级别)。如果它们是互斥的,则需要第三个表来进行用户级映射,但情况似乎并非如此


  • 这是一个非常开放的问题。你肯定想要1而不是2。您不想维护两种登录方法。只要有一个登录页面,并决定用户登录后应该去哪里

    说到3或4,我想你会更喜欢3。将您的桌子做成这样:

    ID, login, password, client_permission_level, admin_permission_level
    
    客户权限级别1=“附加” 客户\权限\级别2=“客户” 管理员权限级别0=“非管理员” 管理员权限级别1=“管理员”

    你可以制作一个更复杂的系统,但听起来这会让你开始。而且,您将能够定义更多级别,如“超级管理员=2”或“超级客户端=3”