对此的简短描述是我创建了自己的论坛。一切都很棒,我自己也对它印象深刻,因为我只学习了 6 个月的 PHP。但是,我正在尝试使用户组正常运行。现在,我可以将一个用户组分配给一个论坛类别,这一切都非常棒。但同样,我只能将一个组添加到论坛。如果我尝试添加更多组,这就是我的代码遇到问题的地方。
首先,让我给你我正在使用的工作代码:
function checkgroupstat($group, $user) {
$findme = $group . ":";
$filestring = get_user_data($user, "groups");
$pos = strpos($filestring, $findme);
if ($pos === false) {
return "false";
} else {
return "true";
}
}
如您所知,“get_user_data() 函数将返回用户所属的一组组。例如,它将返回 5:1;6:1;7:1 等......重要的部分是冒号前面的数字和冒号本身,例如:5:,但不是 5:1。一个代表用户拥有的权限,并且是另一个编码页面的一部分,所以它在这里并不重要。
“groups”字符串将返回分配给论坛的组。上面的代码完美运行。如果返回 true,则论坛可见,否则返回 false。
但是,我尝试使它可以将多个组分配给论坛,并且我使用了无法按预期工作的代码:
function checkgroupstat($group, $user) {
$groups = explode(',', $group);
$filestring = get_user_data($user, "groups");
for ($i = 0; $i < count($groups); ++$i) {
$findme = $groups[$i] . ":";
$pos = strpos($filestring, $findme);
if ($pos === false) {
$false = "true";
}
else {
$truth = "true";
}
}
if ($truth == "true") {
return "true";
}
if ($truth == "") {
return "false";
}
}
我什至尝试使用 for each loop with break;
有什么建议么?
编辑:
下面的建议没有奏效。请参阅我的最新回复:传递给 checkgroupstat 的参数是:("1,2,3", 6)。get_user_data() 返回的结果是 5:1;6:1;7:1;8:1;。顺便说一句,这些都不适合我。