管理员登录界面普通用户也可登录进去
本帖最后由 yoshikis 于 2014-09-18 11:55:57 编辑 小弟在自学PHP,目前在写一个留言板,写admin.php这部分代码时,登录用普通user的账户也可登录,不知道哪里出错了。我SQL语句选的是admin表的啊,为什么连user表中的用户也能选到?不懂,求大神解答。
admin.php代码
1 | <?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 />
|
Salin selepas log masuk
表结构
admin表

user表
------解决思路----------------------兩個問題
1. $_SESSION['user_name']=$user_name; 這句應該登入成功後再調用
2. 普通用戶與管理員都用$_SESSION['user_name'] 判斷是否登入,這樣普通用戶登入後,判斷管理員登入都會是登入狀態了。
應該把管理員的登入保存寫成$_SESSION['admin_user_name'] 在管理員才可以進入的頁面,判斷$_SESSION['admin_user_name'] 而不是$_SESSION['user_name']