前提・実現したいこと
現在研修でログイン機能の実装を行なっています。
ログイン画面でメールアドレスとパスワードを入力してもらい、データベースに登録済みの値と比較し合致していればログインできるという仕組みです。
ログインは問題なくできるようになりましたがアカウント登録時にユーザーもしくは管理者を選択しなければならず、仕様書には権限によってログイン後の画面でヘッダーの一部項目の表示、非表示を行うと記載があります
どのような方法で権限によって表示、非表示を設定できるのでしょうか。
セッションを使うのではないかと思っているのですが的外れでしょうか?
ご教授お願いします。
該当のソースコード
//login.php <?php $errorMessage = ""; if (isset($_POST["login"])) { if (empty($_POST["mail"])) { $errorMessage = 'ユーザーIDが未入力です。'; } else if (empty($_POST["password"])) { $errorMessage = 'パスワードが未入力です。'; } if (!empty($_POST["mail"]) && !empty($_POST["password"])) { $mysqli = new mysqli('localhost', '', ''); if ($mysqli->connect_errno) { print('<p>エラーが発生したためログイン情報を取得できません。</p>' . $mysqli->connect_error); exit(); } $mysqli->select_db(''); $mail = $mysqli->real_escape_string($_POST["mail"]); $query = "SELECT * FROM test WHERE mail = '".$mail."'"; $result = $mysqli->query($query); while ($row = $result->fetch_assoc()) $db_hashed_pwd = $row['password']; } if (password_verify($_POST["password"], $db_hashed_pwd)) { header("Location: top.php"); exit; } else { $errorMessage = "ユーザIDとパスワードを入力してください。もしくは入力に誤りがあります。"; } } ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>ログイン画面</title> <link rel="stylesheet" type="text/css" href=""> </head> <body> <header> <ul> <li>プロフィール</li> <li>問い合わせ</li> <li>その他</li> </ul> </header> <form action="" method="post"> <br><h3>ログイン画面</h3> <div class="login"> <p><font color="#ff0000"><?php echo htmlspecialchars($errorMessage, ENT_QUOTES); ?></font></p> <ul> <li> <label>メールアドレス</label> <input type="email" class="text" size="30" name="mail" maxlength="100" placeholder="" pattern="[/^([a-zA-Z0-9])+([a-zA-Z0-9._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9._-]+)+$/]"> </li> <br> <li> <label>パスワード</label> <input type="password" class="text" size="30" placeholder="" name="password" maxlength="10" pattern="^[0-9A-Za-z]+$"> </li> </ul> </div> <br> <p><input type="submit" class="submit" name="login" value="ログイン"></p> </form> <footer></footer> </body> </html>
//top.php <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" type="text/css" href=""> </head> <body> <header> <ul> <li>プロフィール</li> <li><a href="">アカウント一覧</a></li> //表示、非表示の切り替えをしたい項目 <li><a href="">アカウント登録</a></li> //表示、非表示の切り替えをしたい項目 <li>問い合わせ</li> <li>その他</li> </ul> </header> <main> </main> <footer> </footer> </body> </html>
補足情報(FW/ツールのバージョンなど)
phpMyAdmin バージョン情報: 4.9.5
サーバの種類: MySQL
テーブル定義と項目
ID カラム名「id」、データ型「int(100)」、主キー、自動採番
メールアドレス カラム名「mail」、データ型「varchar(255)」
パスワード カラム名「password」、データ型「varchar(255)」、
権限 カラム名「authority」、データ型「int(1)」、パラメータが0の場合は「ユーザー」で1の場合は「管理者」とする
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/02/02 01:34
2021/02/02 03:43
2021/02/02 03:49