Webサイトを開発するとき、ユーザーのログインとログアウトは不可欠な機能です。ウェブサイトが拡大し続けるにつれて、ユーザーの役割と許可の洗練された管理を達成することが特に重要です。この記事では、PHP関数を介してユーザーログインおよびログアウト関数を実装する方法を詳細に紹介し、異なるユーザーが対応する操作権限を確保するために、マルチレベルの役割と権限の管理に拡張します。
まず、ユーザー名、パスワード、役割、作成時間など、ユーザー情報を保存するデータベーステーブルを作成する必要があります。以下は、ユーザーテーブルのデータベース構造です。
テーブルユーザーを作成します( id int(11)auto_incrementプライマリキー、 username varchar(100)nullではありません、 パスワードvarchar(100)nullではありません、 ロールvarchar(50)nullではなく、 created_atタイムスタンプデフォルトcurrent_timestamp );
このテーブル構造で:
次に、ユーザーのログイン関数を実装するPHP関数を書き込みます。
function login($ username、$ password){ //データベースからユーザー情報$ query = "select * fromユーザーからusername = '$ username'"; $ result = mysqli_query($ conn、$ query); if(mysqli_num_rows($ result)== 1){ $ user = mysqli_fetch_assoc($ result); //パスワードを確認するif(password_verify($ password、$ user ['password'])){ //ユーザーログインステータス$ _Session ['user_id'] = $ user ['id']; $ _SESSION ['USERNAME'] = $ user ['username']; $ _SESSION ['ROLE'] = $ user ['role']; trueを戻るします。 } } falseを戻るします。 }
上記のコードは、最初にユーザー名がデータベースに存在するかどうかを確認します。存在する場合は、 password_verify関数を介してパスワードの正しさを確認します。検証が渡された場合、ユーザー情報は$ _Sessionに保存され、ユーザーログインを実現します。
以下は、 session_unset()とsession_destroy()を使用して、ユーザーがログアウトするPHPコードです。
function logout(){ //セッションを破壊します session_unset(); session_destroy(); }
このコードを使用して、ユーザーはセッションから正常にログアウトし、ログイン状態からログアウトできます。
ログインおよびログアウト関数に基づいて、さらに拡張してマルチレベルのロールと許可制御を追加できます。ユーザーの権限を確認する機能は次のとおりです。
function checkpermission($ rebyrolole){ if(isset($ _ session ['role'])&& $ _session ['rofis'] == $ couldrole){ trueを戻るします。 } falseを戻るします。 }
この関数は、現在のユーザーの役割が必要な役割を満たしているかどうかをチェックします。一致する場合はtrueを返します。それ以外の場合は、 falseを返します。
次に、さまざまな役割に応じて異なる操作を実行できます。たとえば、管理者と通常のユーザーの許可制御:
if(checkpermission( 'admin')){ //マネージャーオペレーションを実行} elseif(checkpermission( 'user')){ //一般的にのユーザー動作しますを実行} else { //許可動作しますなし}
ユーザーの役割に応じて、システムは対応する操作を実行します。管理者は、より高い権限で操作を実行できますが、通常のユーザーは通常の操作のみを実行できます。
上記のコードの例を介して、PHP関数を使用してユーザーログイン、ログアウト、およびマルチレベルの役割と許可管理を実装する方法を示します。このようにして、ウェブサイトの開発者は、ユーザーのアクセス許可を柔軟に管理して、システムのセキュリティと信頼性を確保することができます。