欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

管理员登录界面普通用户也可登录进去

程序员文章站 2022-03-18 23:53:29
...
小弟在自学PHP,目前在写一个留言板,写admin.php这部分代码时,登录用普通user的账户也可登录,不知道哪里出错了。我SQL语句选的是admin表的啊,为什么连user表中的用户也能选到?不懂,求大神解答。

admin.php代码
管理员登陆
用户登陆
Username:
Password:
注册新用户
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 "
"; } else { // echo "登陆成功!"; echo "
"; } }?>


表结构

admin表


user表





回复讨论(解决方案)

加个字段 admin特殊标识一下就可以 欢迎访问个人php学习网站 http://www.phpthinking.com

把admin用单引号括起来吗?还是.....

你得登录成功了,再保存到session啊

????
1. $_SESSION['user_name']=$user_name; ?句??登入成功後再?用
2. 普通用??管理?都用$_SESSION['user_name'] 判?是否登入,??普通用?登入後,判?管理?登入都?是登入??了。
??把管理?的登入保存?成$_SESSION['admin_user_name'] 在管理?才可以?入的?面,判?$_SESSION['admin_user_name'] 而不是$_SESSION['user_name']

楼上正解!登陆成功才保存到会话里,不然在判断会话中的变量时不是登录与否都存在,那还登陆做什么。

????
1. $_SESSION['user_name']=$user_name; ?句??登入成功後再?用
2. 普通用??管理?都用$_SESSION['user_name'] 判?是否登入,??普通用?登入後,判?管理?登入都?是登入??了。
??把管理?的登入保存?成$_SESSION['admin_user_name'] 在管理?才可以?入的?面,判?$_SESSION['admin_user_name'] 而不是$_SESSION['user_name']

大神我在登录成功后加入$_SESSION['admin_user_name']=$user_name;跳转不到管理界面啊。。前面的session start去掉了


????
1. $_SESSION['user_name']=$user_name; ?句??登入成功後再?用
2. 普通用??管理?都用$_SESSION['user_name'] 判?是否登入,??普通用?登入後,判?管理?登入都?是登入??了。
??把管理?的登入保存?成$_SESSION['admin_user_name'] 在管理?才可以?入的?面,判?$_SESSION['admin_user_name'] 而不是$_SESSION['user_name']

大神我在登录成功后加入$_SESSION['admin_user_name']=$user_name;跳转不到管理界面啊。。前面的session start去掉了


????
1. $_SESSION['user_name']=$user_name; ?句??登入成功後再?用
2. 普通用??管理?都用$_SESSION['user_name'] 判?是否登入,??普通用?登入後,判?管理?登入都?是登入??了。
??把管理?的登入保存?成$_SESSION['admin_user_name'] 在管理?才可以?入的?面,判?$_SESSION['admin_user_name'] 而不是$_SESSION['user_name']

大神我在登录成功后加入$_SESSION['admin_user_name']=$user_name;跳转不到管理界面啊。。前面的session start去掉了 现在我不管输入什么用户名和密码都能登录?哪错啦??



????
1. $_SESSION['user_name']=$user_name; ?句??登入成功後再?用
2. 普通用??管理?都用$_SESSION['user_name'] 判?是否登入,??普通用?登入後,判?管理?登入都?是登入??了。
??把管理?的登入保存?成$_SESSION['admin_user_name'] 在管理?才可以?入的?面,判?$_SESSION['admin_user_name'] 而不是$_SESSION['user_name']

大神我在登录成功后加入$_SESSION['admin_user_name']=$user_name;跳转不到管理界面啊。。前面的session start去掉了


????
1. $_SESSION['user_name']=$user_name; ?句??登入成功後再?用
2. 普通用??管理?都用$_SESSION['user_name'] 判?是否登入,??普通用?登入後,判?管理?登入都?是登入??了。
??把管理?的登入保存?成$_SESSION['admin_user_name'] 在管理?才可以?入的?面,判?$_SESSION['admin_user_name'] 而不是$_SESSION['user_name']

大神我在登录成功后加入$_SESSION['admin_user_name']=$user_name;跳转不到管理界面啊。。前面的session start去掉了 现在我不管输入什么用户名和密码都能登录?哪错啦?? 说错了,现在是无论输入什么,都能弹出js登录成功框,然后又回到登录的界面。