繁体   English   中英

用户访问控制获取用户级别

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM