[英]user access control getting user level
我有一个带有<form method="POST" action="formdata.php">
的登录表单
在formdata.php中,我的变量为
$n=$_POST['name']; $p=$_POST['password'];
然后,成功登录后,我将定向到页面“ main.php” 。
我要从main.php检查用户级别,并根据用户级别限制用户可以访问的页面。
为了获得用户级别,我将其包括在内
$query=mysql_query("SELECT level FROM member WHERE userName='$n'");
$level=mysql_fetch_array($query);
if ($level==3){
echo "level 3 user";
}
但是我不认为我可以正确地将用户级别从数据库传递到变量$ level,因为if ($level==3)
不会执行。
我不能在WHERE userName='$n'
使用$n
,因为$ n在formdata.php中声明了吗?
如何从数据库中获取级别字段值?
您的用法是错误的。 一定是
if($level[0] == 3)
要么
if($level['level'] == 3)
你应该看看会议
在formdata.php中验证登录名时,将用户的数据保存到会话中:
<?php
session_start();
// validate user credentials
$_SESSION['user_level'] = 3;
$_SESSION['user_name'] = 'John Smith';
然后,您可以在main.php中访问此数据
<?php
session_start();
echo("Hello $_SESSION[user_name]!");
if ($_SESSION['user_level'] > 3) {
echo "You have admin access";
} else {
echo "You're a regular user";
}
只要记住要在需要访问会话数据的每个页面上调用session_start()
即可。 在使用我的样本之前,还请仔细阅读该主题,这只是一个起点。
mysql_fetch_array
返回数组不要将其用作字符串
这种情况是
$level=mysql_fetch_array($query);
if ($level['level']==3){
echo "level 3 user";
}
问题出在这里'$ n'
检查以下内容:$ query = mysql_query('从成员WHERE userName =“'。$ n。'”')中选择级别;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.