繁体   English   中英

如何为用户PHP分配角色

[英]How to assign a role to a user PHP

好吧,我有这种添加用户admin的表格,我已授予用户添加其他用户的权限,但不添加管理员左右!

$roles = db_fetch_all("role") ; 
$TabRoles = array(''=>'-- Choose --');
foreach($roles as $value)
{
    $TabRoles[$value['rid']] = $value['name'];
} 

并带有print_array($TabRoles); 它显示我:

Array
(
    [] => -- Choose --
    [admin] => Admin
    [seo] => SEO
    [user] => User
)

条件是if (user('rid') == 'admin'|'seo') 我尝试了这个:

foreach($roles as $value)
{
if (user('rid') == 'admin'|'seo')
    {
        $TabRoles[$value['rid']] = $value['name'];
    }else{

        $TabRoles[$value['rid']] = $value['name'][2];
    }
}

但是它向我显示了数组的位置“ 2”!

Array
(
    [] => -- Choose --
    [admin] => m
    [seo] => O
    [user] => e
)

我希望它显示如下:

Array
(
    [] => -- Choose --
    [user] => User
)

有什么解决办法吗? 非常感谢!

解决方案 :感谢@DanFromGermany:

foreach($roles as $value)
{
if (user('rid') == 'admin' || user('rid') == 'seo')
    {
        $TabRoles[$value['rid']] = $value['name'];
    }elseif (user('rid') == $value['rid']){
 $TabRoles[$value['rid']] = $value['name'];
    }
}
if (user('rid') == 'admin'|'seo')

| 是按位运算符,但我想您需要在此处进行逻辑比较:

if (user('rid') == 'admin' || user('rid') == 'seo')

在字符串上使用数组括号的说明:

$test = 'abcd';

echo $test[0]; // prints a
echo $test[1]; // prints b
echo $test[2]; // prints c

这就是为什么只得到一个字母而不是您想要的元素的原因。

我认为您正在寻找类似的东西:

foreach($roles as $value) {
    if (user('rid') == $value['rid'])
        $TabRoles[$value['rid']] = $value['name'];
    }
}

要么

foreach($roles as $value) {
    $TabRoles[$value['rid']] = $value['name'];
}

if (user('rid') != 'seo' && user('rid') != 'admin')) { // inverse/negate the logic!
    unset($TabRoles['seo']);
    unset($TabRoles['admin']);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM