ホームページ >バックエンド開発 >PHPチュートリアル >一般ユーザーも管理者ログインインターフェースにログインできます。
私は独学で PHP を勉強しており、現在掲示板を書いています。コードの admin.php 部分を作成する際、通常のユーザー アカウントでログインできます。何が問題だったのかわかりません。 SQL ステートメントで admin テーブルが選択されるのですが、なぜ user テーブル内のユーザーも選択されてしまうのでしょうか?分かりません、神様に答えを求めてください。
admin.php コード
<?php error_reporting(0); @session_start(); require_once 'conn/conn.php'; $user_name=$_POST['name']; $password=md5($_POST['password']); $_SESSION['user_name']=$user_name; if(strlen($user_name)<1){?><html><head> <title>管理员登陆</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head><body><center><form method="post" action="admin.php"><table border='1'> <tr> <th colspan='2' bgcolor='cccccc'>用户登陆</th> </tr> <tr> <td align='right'>Username:</td> <td><input type='text' name='name' maxlength='16' size='16'></input></td> </tr> <tr> <td align='right'>Password:</td> <td><input type='password' name='password' size='16' maxlength='10'></input></td> </tr> <tr> <td colspan='2'><font size="2"><input type='submit' value='确认登陆'></input> <input type='reset' value='重新填写'></input> <a href='message.php'>注册新用户</a> </font></td> </tr></table></form></center><?php } else if(strlen($user_name)>1){ $query="select * from admin where user_name=? and password=?";// echo $query;// exit; $st=$db->prepare($query); $rs = $st->execute(array($user_name,$password)); if($rs == false) { echo "<center><script>alert('登陆失败!');window.location.href='admin.php'</script></center>"; } else { // echo "登陆成功!"; echo "<center><script>alert('管理员登陆成功!');window.location.href='admin_select_neirong.php'</script></center>"; } }?></body></html>
フィールド管理者を追加し、特別に「ようこそ」とマークするだけです個人の PHP 学習 Web サイト http://www.php Thinking.com にアクセスしてください
admin を一重引用符で囲みますか?または...ログインに成功してからセッションに保存する必要があります
????
1. $_SESSION['user_name']=$user_name; ログインに成功した後に使用します
2. 一般ユーザー一般ユーザーがログインした後、管理者または管理者がログインしたかどうかを判断します。
管理者のログインを $_SESSION['admin_user_name'] として保存します。管理者がログインできる場合は、$_SESSION['user_name'] の代わりに $_SESSION['admin_user_name'] を判定します。
フロア 正解です!ログインが成功した場合にのみセッションに保存されます。そうでない場合、セッション内の変数を判断するときに、ログインしているかどうかに関係なく変数は存在しません。なぜわざわざログインする必要があるのでしょうか。
????
1. $_SESSION['user_name']=$user_name; ログイン成功後に使用します
2. $_SESSION['user_name'] を一般的なユーザー管理に使用します ログインしますか?一般ユーザーの場合は、管理者がログインしているかどうかで判断されます。
管理者のログインを $_SESSION['admin_user_name'] として保存します。 管理者がログインできる場合、$_SESSION['user_name'] の代わりに $_SESSION['admin_user_name'] を判断します。
????
1. $_SESSION['user_name']=$user_name; ログイン成功後に使用します
2. 通常の使用と管理に使用します $_SESSION['user_name '] でログインするかどうかを決定します。一般ユーザーがログインした後、管理ログインであるかどうかを決定します。
管理者のログインを $_SESSION['admin_user_name'] として保存します。 管理者がログインできる場合、$_SESSION['user_name'] の代わりに $_SESSION['admin_user_name'] を判断します。
1. $_SESSION['user_name']=$user_name; ??一般的な用途には $ を使用します? _SESSION['user_name'] でログインするかどうかを判断します。一般ユーザーがログインした後、管理者がログインしたかどうかを判断します。
管理者のログインを $_SESSION['admin_user_name'] として保存します。 管理者がログインできる場合、$_SESSION['user_name'] の代わりに $_SESSION['admin_user_name'] を判断します。
マスターミー ログインに成功したら、$_SESSION[' を追加します。 admin_user_name']=$user_name; 管理インターフェイスにジャンプすることはできません。 。以前のセッション開始は削除されました
これで、どのユーザー名とパスワードを入力してもログインできますか?どうしたの? ?
????
1. $_SESSION['user_name']=$user_name; ログイン成功後に使用します 2. 通常の使用と管理には $_SESSION[' user_name'] を使用してログインするかどうかを決定します. 一般ユーザーがログインした後、管理者または管理者がログインしたかを判断します。
管理者のログインを $_SESSION['admin_user_name'] として保存します。 管理者がログインできる場合、$_SESSION['user_name'] の代わりに $_SESSION['admin_user_name'] を判断します。
マスターミー ログインに成功したら、$_SESSION[' を追加します。 admin_user_name']=$user_name; 管理インターフェイスにジャンプすることはできません。 。前回のセッション開始は削除されました
????
1. $_SESSION['user_name']=$user_name; ??一般的な用途には $ を使用します? _SESSION['user_name'] は、ログインするかどうかを決定します。通常のユーザーがログインした後、管理ログインがログインしているかどうかを決定します。