まず、ユーザー情報をデータベースに保存する必要があることを知っておく必要があります。次に、誰かがログインしてログインを確認すると、そのユーザー ID をセッションに保存し、他のすべてのユーザー情報 ( など) を取得するにはuser_type
、その ID に基づいてデータベースにクエリを実行します。まだそれを行っているかどうかはわかりませんが、そうでない場合は行う必要があります。
ユーザー権限に関しては、2 つのオプションがあります。
OOP の方法
これは私が推奨するものです。User
データベースからユーザーを取得するためのすべてのロジックをカプセル化するクラスを作成し、その後、そのユーザーが特定の権限を持っているかどうかを確認する必要があります。
class User {
protected static $_rights = array(
'admin'=>array(
'create_page','remove_page', etc...
)
);
public static retrieve($id) {
// Call to your database or persistent storage to retrieve user info based on id
return new static($retrieved_user_data);
}
public function has_right($right) {
return in_array($right, static::$_rights[$this->user_type]);
}
}
非 OOP の方法
これははるかに低レベルであり、当面はあなたにとってより良いものになるかもしれません. 基本的に、ユーザー レベルごとに権利の配列を作成し、それらをチェックするために使用する関数と同じファイルに保存します。次に、この関数を使用する予定のすべてのページに含める必要があります。
たとえば、関数を というファイルに入れるとfunctions.php
、次のようになります。
$user_rights = array(
'admin'=>array('create_page','remove_page','edit_user',...),
'veteran'=>array('ban_user','edit_page'),
// Other rights here
);
function has_right($user_id, $right) {
global $user_rights;
// Retrieve information from persistent storage about the user
// which I'm assuming you will store in $user_info
return in_array($right, $user_rights[$user_info['user_type']]);
}
次に、ユーザー権限を確認したい他のファイルにこのファイルを含める必要があります。必要なのは、ユーザー ID (ログイン後にセッションに保存されます) とユーザーの種類だけです。これは、データベースなどから取得できます。永続ストレージ。