Home >Backend Development >PHP Tutorial >管理员登录界面普通用户也可登录进去

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

WBOY
WBOYOriginal
2016-06-23 13:49:061072browse

小弟在自学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表





回复讨论(解决方案)

加个字段  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登录成功框,然后又回到登录的界面。
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn