[英]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.