通过会话或数据库检查用户组级别?

时间:2011-05-30 14:09:59

标签: php security authentication login

当客户或管理员登录时,他们的member_id将存储在会话中($_SESSION['member_id']

有多个组级别,最好是像这样存储在会话中:

$_SESSION['group_id'] = 2;

或从数据库中检查组级别?

SELECT group_id FROM users where member_id = .  $_SESSION['member_id'];

我已经为前端编写了用户登录类,后端使用相同的类没有错?

2 个答案:

答案 0 :(得分:4)

如果您将member_id存储在会话变量中,为什么不使用group_id?会话变量允许您的数据在请求之间保持持久性,这似乎是您所需要的。

虽然有些人建议将会话数据保留在minimin,即:

 $_SESSION['uid'] = 5;
 $_SESSION['logged_on'] = true;

我不会考虑将group_id用作会话变量的错误用法,因为在您的情况下,member_id依赖于group_id来执行任何操作。

答案 1 :(得分:3)

两者之间的主要区别在于,在第一种情况下,对用户组的更改可能仅在下一个会话中可见(例如,用户已登录,并且管理员更改了组)而在另一个会话中他们将立即生效。