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>