一般ユーザーも管理者ログイン画面にログインできます
この投稿は 2014-09-18 11:55:57 に yoshikis によって最終編集されました 私は独学で PHP を勉強しており、現在メッセージを書いていますボードに admin .php コードを書くと、通常のユーザー アカウントでログインできますが、何が問題だったのかわかりません。 SQL ステートメントで admin テーブルが選択されるのですが、なぜ user テーブル内のユーザーも選択されてしまうのでしょうか?分かりません、神様に答えを求めてください。
admin.php コード
<?php<br /> error_reporting(0);<br /> @session_start();<br /> require_once 'conn/conn.php';<br /> $user_name=$_POST['name'];<br /> $password=md5($_POST['password']);<br /> $_SESSION['user_name']=$user_name;<br /> if(strlen($user_name)<1){<br />?><br /><html><br /><head><br /> <title>管理员登陆</title><br /> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><br /></head><br /><body><br /><center><br /><form method="post" action="admin.php"><br /><table border='1'><br /> <tr><br /> <th colspan='2' bgcolor='cccccc'>用户登陆</th><br /><br /> </tr><br /> <tr><br /> <td align='right'>Username:</td><br /> <td><input type='text' name='name' maxlength='16' size='16'></input></td><br /> </tr><br /> <tr><br /> <td align='right'>Password:</td><br /> <td><input type='password' name='password' size='16' maxlength='10'></input></td><br /> </tr><br /> <tr><br /> <td colspan='2'><font size="2"><input type='submit' value='确认登陆'></input><br /> <input type='reset' value='重新填写'></input><br /> <a href='message.php'>注册新用户</a><br /> </font></td><br /> </tr><br /></table><br /></form><br /></center><br /><br /><?php<br /><br /> }<br /> else if(strlen($user_name)>1){<br /> $query="select * from admin where user_name=? and password=?";<br />// echo $query;<br />// exit;<br /> $st=$db->prepare($query);<br /> $rs = $st->execute(array($user_name,$password));<br /> if($rs == false)<br /> {<br /> <br /> echo "<center><script>alert('登陆失败!');window.location.href='admin.php'</script></center>";<br /> }<br /> else<br /> {<br /> // echo "登陆成功!";<br /> echo "<center><script>alert('管理员登陆成功!');window.location.href='admin_select_neirong.php'</script></center>";<br /> }<br /> }<br /><br />?><br /></body><br /></html>
ログイン後にコピー
テーブル構造
管理テーブル
ユーザーテーブル
-----ソリューションアイデア---------------------- 2 つの質問
1. $_SESSION['user_name']=$user_name; この文は、通常のユーザーと管理者の両方が $_SESSION['user_name '] を使用します。一般ユーザーがログインした後、管理者がログインしていると判断するようにログインするかどうかを決定します。
管理者のログインは $_SESSION['admin_user_name'] として保存する必要があります。管理者のみが入力できるページでは、$_SESSION['user_name'] ではなく $_SESSION['admin_user_name'] と判断してください