これについての簡単な説明は、私が自分のフォーラムを作成したということです。すべてが素晴らしく機能し、PHPを6か月しか勉強していないという点で、私自身も非常に感銘を受けています。ただし、ユーザーグループを正しく機能させようとしています。現在、1つのユーザーグループをフォーラムカテゴリに割り当てることができ、すべてがうまく機能しています。しかし、繰り返しになりますが、フォーラムに追加できるグループは1つだけでした。さらにグループを追加しようとすると、ここでコードに問題が発生します。
まず、私が使用している作業コードを紹介します。
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ではありません。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";
}
}
ブレーク付きの各ループに使用してみました。
助言がありますか?
編集:
以下の提案は機能しませんでした。次のような私の最新の応答を参照してください。checkgroupstatに渡されるパラメーターは次のとおりです:( "1,2,3"、6)。get_user_data()から返される結果は、5:1; 6:1; 7:1; 8:1;です。ところで、これらのどちらも私にはうまくいきませんでした。