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

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-13 12:06:29
Original
1191 people have browsed it

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

本帖最后由 yoshikis 于 2014-09-18 11:55:57 编辑 小弟在自学PHP,目前在写一个留言板,写admin.php这部分代码时,登录用普通user的账户也可登录,不知道哪里出错了。我SQL语句选的是admin表的啊,为什么连user表中的用户也能选到?不懂,求大神解答。

admin.php代码
<?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 />//	echo $query;<br />//	exit;<br />	$st=$db->prepare($query);<br />    $rs = $st->execute(array($user_name,$password));<br />	if($rs == false)<br />	{<br />		<br />		echo "<center><script>alert('登陆失败!');window.location.href='admin.php'</script></center>";<br />	}<br />	else<br />	{<br />	//	echo "登陆成功!";<br />	echo "<center><script>alert('管理员登陆成功!');window.location.href='admin_select_neirong.php'</script></center>";<br />	}<br />	}<br /><br />?><br /></body><br /></html>
Copy after login


表结构

admin表


user表





------解决思路----------------------
兩個問題
1.    $_SESSION['user_name']=$user_name; 這句應該登入成功後再調用
2. 普通用戶與管理員都用$_SESSION['user_name'] 判斷是否登入,這樣普通用戶登入後,判斷管理員登入都會是登入狀態了。
應該把管理員的登入保存寫成$_SESSION['admin_user_name']  在管理員才可以進入的頁面,判斷$_SESSION['admin_user_name'] 而不是$_SESSION['user_name'] 
Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template