PHPでのアクセス権限
ウェブサイトでは、多くの場合、ユーザーの種類は一つではなく複数あり、それぞれが異なる権限を持っています。 例えば、一般ユーザーと管理者がいるかもしれません。管理者は一般ユーザーよりも多くの権限を持つことになります。
これを実装する方法は次の通りです:ユーザーテーブルにもう一つのフィールドを作成し、それをstatusと名付けます。
各ユーザーに対して、そのステータスを保存します:管理者には'admin'という単語、一般ユーザーには'user'という単語を設定しましょう。
ここで、ユーザーが認証された際に、データベースから取得したユーザーのステータスを$_SESSION['status']に記録します:
<?php
if (password_verify($_POST['password'], $hash)) {
$_SESSION['auth'] = true;
$_SESSION['id'] = $user['id'];
$_SESSION['status'] = $user['status']; // ステータスを記録
}
?>
ここで、サイト上に管理者のみがアクセスできるページがあるとします。 そのページのコンテンツが管理者のみに見えるようにしましょう:
<?php
if (!empty($_SESSION['auth']) and $_SESSION['status'] === 'admin') {
// ページのコンテンツを管理者のみに表示
}
?>