ホームページ >バックエンド開発 >PHPチュートリアル >CodeIgniter フレームワークを使用してユーザー認証とロール管理を実装する手順

CodeIgniter フレームワークを使用してユーザー認証とロール管理を実装する手順

WBOY
WBOYオリジナル
2023-07-28 22:42:531634ブラウズ

CodeIgniter フレームワークを使用してユーザー認証とロール管理を実装する手順

CodeIgniter は、MVC (Model-View-Controller) 設計パターンに基づくオープン ソースの PHP フレームワークで、Web アプリケーションを迅速に構築するのに適しています。 Web アプリケーションを開発する場合、ユーザーの承認とロール管理は非常に重要な部分です。この記事では、CodeIgniter フレームワークを使用してユーザー認証とロール管理を実装する手順を紹介します。

ステップ 1: CodeIgniter フレームワークをインストールする
まず、CodeIgniter フレームワークをダウンロードしてインストールする必要があります。フレームワークの最新バージョンは、公式 Web サイト (https://codeigniter.com) からダウンロードできます。解凍後、フレームワーク ファイルを Web サーバーのディレクトリに配置します。

ステップ 2: データベースとデータ テーブルを作成する
次に、データベースを作成し、ユーザーとロールの情報を保存するための関連データ テーブルを作成する必要があります。以下は簡単な例です:

CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(255) NOT NULL,
  `password` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `roles` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `role_name` varchar(255) NOT NULL,
  PRIMARY KEY (`id`)
);

CREATE TABLE `user_roles` (
  `user_id` int(11) NOT NULL,
  `role_id` int(11) NOT NULL,
  PRIMARY KEY (`user_id`, `role_id`),
  FOREIGN KEY (`user_id`) REFERENCES `users` (`id`),
  FOREIGN KEY (`role_id`) REFERENCES `roles` (`id`)
);

ステップ 3: データベース接続の構成
CodeIgniter フレームワークでは、データベース接続情報を構成する必要があります。 application/config/database.php ファイルで、次の内容を変更します:

$db['default'] = array(
    ...
    'hostname' => 'localhost',
    'username' => 'your_username',
    'password' => 'your_password',
    'database' => 'your_database',
    ...
);

your_usernameyour_password、および を置き換えます。 your_databaseデータベース接続情報に置き換えます。

ステップ 4: モデルを作成する
CodeIgniter フレームワークでは、モデルはデータの処理に使用されます。 application/models ディレクトリに、2 つのファイル User_model.phpRole_model.php を作成し、次の内容を書き込みます:

User_model.php

class User_model extends CI_Model {
    public function check_login($username, $password) {
        $this->db->where('username', $username);
        $this->db->where('password', $password);
        $query = $this->db->get('users');
        return $query->row();
    }

    public function get_user_roles($user_id) {
        $this->db->select('roles.role_name');
        $this->db->from('user_roles');
        $this->db->join('roles', 'user_roles.role_id = roles.id');
        $this->db->where('user_roles.user_id', $user_id);
        $query = $this->db->get();
        return $query->result();
    }
}

Role_model.php

class Role_model extends CI_Model {
    public function get_all_roles() {
        $query = $this->db->get('roles');
        return $query->result();
    }
}

ステップ 5:
application/controllers## にコントローラー を作成します#Directory に Auth.phpAdmin.php という 2 つのファイルを作成し、次の内容を書き込みます:

Auth.php:

class Auth extends CI_Controller {
    public function login() {
        // 处理用户登录
    }

    public function logout() {
        // 处理用户注销
    }
}

Admin.php

class Admin extends CI_Controller {
    public function index() {
        $user_id = $this->session->userdata('user_id');
        $this->load->model('User_model');
        $data['user_roles'] = $this->User_model->get_user_roles($user_id);
        $this->load->view('admin/dashboard', $data);
    }
}

ステップ 6: ビューの作成


application/views ディレクトリに、login_form を作成します。 phpdashboard.php の 2 つのファイルに次の内容を書き込みます:

login_form.php:

<form action="/auth/login" method="post">
    <input type="text" name="username" placeholder="Username">
    <input type="password" name="password" placeholder="Password">
    <input type="submit" value="Login">
</form>

dashboard .php

<h1>Welcome to the Dashboard</h1>
<p>User Roles:</p>
<ul>
    <?php foreach($user_roles as $role): ?>
        <li><?= $role->role_name ?></li>
    <?php endforeach; ?>
</ul>

ステップ 7: ルーティングの構成


application/config/routes.php ファイルで、デフォルト ルートを構成します:

$route['default_controller'] = 'auth/login';

これにより、

Auth コントローラの login メソッドがデフォルトのコントローラ メソッドとして設定されます。

ステップ 8: テスト

ブラウザを使用して Web アプリケーションにアクセスし、ログインを試みます。ログインに成功すると、ユーザー ロール情報が表示されたダッシュボード ページにリダイレクトされます。

概要:

この記事では、CodeIgniter フレームワークを使用してユーザー認証とロール管理を実装する手順を紹介します。データベースとデータ テーブルの作成、データベース接続の構成、モデルの作成、コントローラーの作成、ビューの作成により、ユーザーのログイン、ログアウト、ユーザー ロールの表示の機能を実装できます。上記の手順を学習した後は、特定のニーズに応じてユーザー認証およびロール管理機能をさらに拡張および最適化できます。

以上がCodeIgniter フレームワークを使用してユーザー認証とロール管理を実装する手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。