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

yoshikis 2014-09-18 11:50:05
小弟在自学PHP,目前在写一个留言板,写admin.php这部分代码时,登录用普通user的账户也可登录,不知道哪里出错了。我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>


表结构

admin表


user表




...全文
4116 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
yoshikis 2014-09-18
  • 打赏
  • 举报
回复
引用 1 楼 Ksly_Tkol 的回复:
加个字段 admin特殊标识一下就可以 欢迎访问个人php学习网站 http://www.phpthinking.com
把admin用单引号括起来吗?还是.....
yoshikis 2014-09-18
  • 打赏
  • 举报
回复
引用 7 楼 yoshikis 的回复:
[quote=引用 6 楼 yoshikis 的回复:] [quote=引用 4 楼 fdipzone 的回复:] 兩個問題 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去掉了[/quote]
引用 6 楼 yoshikis 的回复:
[quote=引用 4 楼 fdipzone 的回复:] 兩個問題 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去掉了[/quote]现在我不管输入什么用户名和密码都能登录?哪错啦??[/quote]说错了,现在是无论输入什么,都能弹出js登录成功框,然后又回到登录的界面。
yoshikis 2014-09-18
  • 打赏
  • 举报
回复
引用 6 楼 yoshikis 的回复:
[quote=引用 4 楼 fdipzone 的回复:] 兩個問題 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去掉了[/quote]
引用 6 楼 yoshikis 的回复:
[quote=引用 4 楼 fdipzone 的回复:] 兩個問題 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去掉了[/quote]现在我不管输入什么用户名和密码都能登录?哪错啦??
yoshikis 2014-09-18
  • 打赏
  • 举报
回复
引用 4 楼 fdipzone 的回复:
兩個問題 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去掉了
interlc 2014-09-18
  • 打赏
  • 举报
回复
楼上正解!登陆成功才保存到会话里,不然在判断会话中的变量时不是登录与否都存在,那还登陆做什么。
傲雪星枫 2014-09-18
  • 打赏
  • 举报
回复
兩個問題 1. $_SESSION['user_name']=$user_name; 這句應該登入成功後再調用 2. 普通用戶與管理員都用$_SESSION['user_name'] 判斷是否登入,這樣普通用戶登入後,判斷管理員登入都會是登入狀態了。 應該把管理員的登入保存寫成$_SESSION['admin_user_name'] 在管理員才可以進入的頁面,判斷$_SESSION['admin_user_name'] 而不是$_SESSION['user_name']
php_way 2014-09-18
  • 打赏
  • 举报
回复
你得登录成功了,再保存到session啊

21,893

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧