Php 用户访问控制获取用户级别
我有一个带有Php 用户访问控制获取用户级别,php,sql,database,Php,Sql,Database,我有一个带有 在formdata.php中,我将变量设置为 $n=$\u POST['name']; $p=$_POST['password'] 成功登录后,我直接进入页面“main.php” 在main.php中,我想检查用户级别,并根据用户级别限制用户可以访问的页面 要获得包含的用户级别I $query=mysql_query("SELECT level FROM member WHERE userName='$n'"); $level=mysql_fetch_array($query);
在formdata.php中,我将变量设置为
$n=$\u POST['name'];
$p=$_POST['password']代码>
成功登录后,我直接进入页面“main.php”
在main.php中,我想检查用户级别,并根据用户级别限制用户可以访问的页面
要获得包含的用户级别I
$query=mysql_query("SELECT level FROM member WHERE userName='$n'");
$level=mysql_fetch_array($query);
if ($level==3){
echo "level 3 user";
}
但是我认为我没有正确地将用户level从数据库获取到变量$level,因为如果($level==3),它不会执行
我不能在中使用$n
,其中userName='$n'
,因为$n是在formdata.php中声明的吗
如何从数据库中获取级别字段值?您的用法是错误的。一定是
if($level[0] == 3)
或
你应该调查一下
在formdata.php中验证登录时,将用户的数据保存到会话中:
<?php
session_start();
// validate user credentials
$_SESSION['user_level'] = 3;
$_SESSION['user_name'] = 'John Smith';
mysql\u fetch\u数组
返回数组不要将其用作字符串
这种情况会很严重
$level=mysql_fetch_array($query);
if ($level['level']==3){
echo "level 3 user";
}
问题就在这里“$n”
选中此项:
$query=mysql_query('SELECT level FROM member WHERE userName=“”.$n.“”) 我更改为“$query=mysql_query('SELECT level FROM member WHERE userName=“”.$n.”)$level=mysql\u fetch\u数组($query);如果($level['level']==3){echo“level 3 user”}`但仍然无法打印($level)并粘贴其结果,则不会打印任何内容,因为结果意味着查询中存在问题,它不会提供任何结果来打印查询并在phpmyadmin sql中运行
<?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";
}
$level=mysql_fetch_array($query);
if ($level['level']==3){
echo "level 3 user";
}