首頁 > 後端開發 > php教程 > 管理员登录界面普通用户也可登录进入

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2016-06-13 12:06:29
原創
1195 人瀏覽過

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

本帖最后由 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>
登入後複製


表结构

admin表


user表





------解决思路----------------------
兩個問題
1.    $_SESSION['user_name']=$user_name; 這句應該登入成功後再調用
2. 普通用戶與管理員都用$_SESSION['user_name'] 判斷是否登入,這樣普通用戶登入後,判斷管理員登入都會是登入狀態了。
應該把管理員的登入保存寫成$_SESSION['admin_user_name']  在管理員才可以進入的頁面,判斷$_SESSION['admin_user_name'] 而不是$_SESSION['user_name'] 
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
javascript - js正規符合特定字串
來自於 1970-01-01 08:00:00
0
0
0
為什麼說非物件呼叫成員函數fetch()
來自於 1970-01-01 08:00:00
0
0
0
資料庫設定檔必須要用二維數組
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板