我通过Windows身份验证登录用户,然后将该用户的权限存储在会话变量中。我使用数据库中的分隔符方法进行权限存储,例如:
所以我的问题是,我应该怎么做?
$rights //retrieved from database
= 'read,edit,delete,admin'
所以我的问题是,我应该怎么做?
//generate variable
$_SESSION['userrights'] = $rights ($rights is retrieved from database)
//use strpos to find if right is allowed
if (strpos($_SESSION['userrights'],"admin") !== false) { // do the function }
或者
//make array of rights
$_SESSION['userrights'] = explode(',',$rights)
//use in_array to find if right is allowed
if (in_array("admin",$_SESSION['userrights'])) { // do the function }
这是一个有点强迫症的问题,因为我认为对于我的工作来说差异几乎可以忽略不计,但哪种方法会更快(使用更少的资源)?
欢迎任何回答,除了侮辱我的权利存储方法的回答!
isset($_SESSION['userrights']['admin'])
。 - Barmar