ホームページ  >  に質問  >  本文

PHPログイン機能にユーザーアクセスレベルを追加する方法

<p>私は、ユーザーがログインするとセッションを開始して Cookie を作成し、次に次のコマンドを使用してユーザーを dashboard.php にリダイレクトする PHP ログイン/登録スクリプトを開発しました。 <pre class="brush:php;toolbar:false;">//変数内のデータを取得 $emailAddress = mysqli_real_escape_string($conn,$_POST['emailAddress']); $password = mysqli_real_escape_string($conn,$_POST['パスワード']); $remember = isset($_POST['rememberMe']); if(!filter_var($emailAddress, FILTER_VALIDATE_EMAIL)) { $error = '有効な電子メール アドレスを入力してください。'; } elseif(email_exists($emailAddress,$conn)) { // メールアドレスが存在する場合 $result = mysqli_query($conn,"ユーザー WHERE email = '$emailAddress' からパスワードを選択"); $retrievePassword = mysqli_fetch_assoc($result); if(!password_verify($password,$retrievePassword['password'])) // パスワードが一致しない場合 { $error = 'パスワードが正しくありません。'; } else { // パスワードが正しい場合、ユーザーはログインします $_SESSION['email'] = $emailAddress; if($remember == 'on') { // 「ユーザーのログインを維持する」にチェックが入っていた場合 setcookie("email",$emailAddress,time() 7200); // ユーザーのログイン状態を 2 時間維持します } header("場所:dashboard.php"); } } else { // メールアドレスが存在しない場合 $error = 'メールアドレスが登録されていません。'; }</pre> <p>すべての制限付きページ (例:dashboard.php) の上部には、次の内容があります: </p> <pre class="brush:php;toolbar:false;">if(logged_in()) { // ユーザーがログインしている場合、ページを表示</pre> <p>logged_in() 関数は次のとおりです: </p> <pre class="brush:php;toolbar:false;">function logged_in(){ if(isset($_SESSION['email']) || isset($_COOKIE['email'])) { true を返します。 } それ以外 { false を返します。 } }</pre> <p>データベースには、<code>usrUserTypeNo</code>というタイトルの列があり、管理者用に「1」、通常ユーザー用に「3」が入っています。 ユーザーの役割に基づいてユーザーに表示されるコンテンツを決定できるように、このユーザー タイプをセッションに組み込むにはどうすればよいですか? </p>
P粉680000555P粉680000555382日前393

全員に返信(1)返信します

  • P粉041856955

    P粉0418569552023-09-06 00:31:46

    ###完全ではありません。

    3 つの異なるアクション (未ログイン、通常ユーザー、管理者ユーザー) のいずれかを実行する場合は、これらの状態をテストし、各状態のロジックを作成する必要があります。

    アクセス レベルをデータベースに毎回要求する代わりに、セッションに保存できます。

    返事
    0
  • キャンセル返事