PHPで異なる権限を持つユーザーのログインを実装する方法

異なる権限を持つユーザーのログインを実現するには、次の手順で行うことができます。

  1. id、ユーザー名、パスワード、権限レベルなどのフィールドを持つユーザーテーブル(例:userテーブル)を作成する。
  2. ログインページを作成し、ユーザーはユーザー名とパスワードを入力し、ログインボタンをクリックします。
  3. ログインリクエストをバックエンド(PHP使用)で処理し、データベース内の対応するレコードとユーザが入力したユーザ名とパスワードを照合します。
  4. 一致すれば、そのユーザーの権限レベルを取得しセッションに格納する。
  5. ユーザーのアクセス可能なページや機能を、ユーザーの権限レベルによって制御する

例えば、ユーザーがログインに成功した後、その権限レベルに従って異なるページに遷移させたり、各ページでユーザーの権限レベルをチェックし、特定の機能を表示するか、または特定の操作を行うかを決定することができます。

以下のコードをご覧ください。

// 处理登录请求
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $username = $_POST['username'];
    $password = $_POST['password'];
    
    // 连接数据库,查询用户
    // 假设数据库连接变量名为$db
    $query = "SELECT * FROM user WHERE username = '$username' AND password = '$password'";
    $result = mysqli_query($db, $query);
    
    // 检查查询结果
    if (mysqli_num_rows($result) == 1) {
        // 登录成功,获取用户权限等级
        $row = mysqli_fetch_assoc($result);
        $permission = $row['permission'];
        
        // 存储用户权限等级到session
        session_start();
        $_SESSION['permission'] = $permission;
        
        // 根据权限等级跳转到不同页面
        if ($permission == 'admin') {
            header('Location: admin.php');
            exit();
        } else if ($permission == 'user') {
            header('Location: user.php');
            exit();
        }
    } else {
        // 登录失败,显示错误信息
        echo '登录失败';
    }
}

admin.php、user.phpなどのページでは、$_SESSION[‘permission’]の値による権限判定が可能で、ページの表示や機能の実行を制御できます。

実際の使用では、入力のフィルタリングと検証、パスワードの暗号化アルゴリズムでの保存など、セキュリティに注意してください。これは例示です。

bannerAds