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_username
、your_password
、および を置き換えます。 your_database
データベース接続情報に置き換えます。
ステップ 4: モデルを作成する
CodeIgniter フレームワークでは、モデルはデータの処理に使用されます。 application/models
ディレクトリに、2 つのファイル User_model.php
と Role_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.php と
Admin.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); } }
application/views ディレクトリに、
login_form を作成します。 php と
dashboard.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>
application/config/routes.php ファイルで、デフォルト ルートを構成します:
$route['default_controller'] = 'auth/login';
Auth コントローラの
login メソッドがデフォルトのコントローラ メソッドとして設定されます。
ブラウザを使用して Web アプリケーションにアクセスし、ログインを試みます。ログインに成功すると、ユーザー ロール情報が表示されたダッシュボード ページにリダイレクトされます。
この記事では、CodeIgniter フレームワークを使用してユーザー認証とロール管理を実装する手順を紹介します。データベースとデータ テーブルの作成、データベース接続の構成、モデルの作成、コントローラーの作成、ビューの作成により、ユーザーのログイン、ログアウト、ユーザー ロールの表示の機能を実装できます。上記の手順を学習した後は、特定のニーズに応じてユーザー認証およびロール管理機能をさらに拡張および最適化できます。
以上がCodeIgniter フレームワークを使用してユーザー認証とロール管理を実装する手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。