>백엔드 개발 >PHP 튜토리얼 >管理员登录界面普通用户也可登录进去

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

WBOY
WBOY원래의
2016-06-23 13:49:061072검색

小弟在自学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登录成功框,然后又回到登录的界面。
성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.