Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
限制来自非管理员用户(PHP和MySQL)的页面_Php_Mysql_Database - Fatal编程技术网

限制来自非管理员用户(PHP和MySQL)的页面

限制来自非管理员用户(PHP和MySQL)的页面,php,mysql,database,Php,Mysql,Database,我正在开发一个需要多种用户类型的网站。我已经能够在用户登录后根据用户名单/类型将用户类型重定向到不同的敬意。但是,我需要将网站的管理部分限制为管理员角色类型。我正在根据用户类型/角色将“1”或“2”存储到数据库中。我正在使用“session_start”和“session_is_registered”检查用户信息。我需要在此代码中添加什么以限制角色类型为“1”的用户查看页面 session_start(); if(!session_is_registered(username)){ header

我正在开发一个需要多种用户类型的网站。我已经能够在用户登录后根据用户名单/类型将用户类型重定向到不同的敬意。但是,我需要将网站的管理部分限制为管理员角色类型。我正在根据用户类型/角色将“1”或“2”存储到数据库中。我正在使用“session_start”和“session_is_registered”检查用户信息。我需要在此代码中添加什么以限制角色类型为“1”的用户查看页面

session_start();
if(!session_is_registered(username)){
header('Location: ../admin/index.php');
}

只嵌套您的if语句。如果他们是管理员,请将他们定向到管理员页面,否则将他们发送到其他地方。

只嵌套您的if语句。如果他们是管理员,请将他们定向到管理员页面,否则将他们发送到其他地方。

将用户角色存储在会话变量中

$_SESSION["role"]=1;

取决于存储的用户信息

然后,在检查权限时,只需检查以下变量:

if($_SESSION["role"]==2){
  header('Location: ../admin/index.php');
} else {
  echo "you need the admin role to view this page!";
}
另一个建议:
如果用户没有管理员角色,最好检查../admin/index.php中的权限并重定向回默认页面。否则,如果用户知道URL,则可以直接浏览../admin/index.php。

将用户角色存储在会话变量中

$_SESSION["role"]=1;

取决于存储的用户信息

然后,在检查权限时,只需检查以下变量:

if($_SESSION["role"]==2){
  header('Location: ../admin/index.php');
} else {
  echo "you need the admin role to view this page!";
}
另一个建议:
如果用户没有管理员角色,最好检查../admin/index.php中的权限并重定向回默认页面。否则,如果用户知道URL,则可以直接浏览../admin/index.php。

会话已注册()
is。您可以在数据库字段中使用枚举类型,并使用require-ing一个php文件检查角色
session\u is\u registed()
is。您可以在数据库字段中使用枚举类型,并使用require-ing一个php文件检查角色。如果您有输入错误;
$\u session[“role”}=2;
应该是
$\u session[“role”]=2;
。请注意
]
。因此,我仍然有问题。我需要对非管理员的任何人隐藏所有管理员页面。所有用户都必须登录到该网站。我有重定向设置,因此“角色类型”为1的人可以进入管理员页面,“2”的人可以进入主页。我需要限制“2”访问管理员页面。您有一个打字错误;
$\u会话[“角色”“}=2;
应该是
$\u SESSION[“role”]=2;
。请注意
]
。因此我仍然存在问题。我需要对非管理员的任何人隐藏所有管理员页面。所有用户都必须登录到该站点。我有重定向设置,因此“roletype”为1的人都可以访问管理员和“2”转到主页。我需要将“2”的访问权限限制为管理员页面。