-2

我想限制用户访问我的应用程序中的特定网页。在我的应用程序中,我有 4 个网页,例如孟买、德里、班加罗尔、加尔各答,我有 4 个用户说 User1、User2、User3 和 User4。所有用户都是管理员。

我的要求是所有 4 个用户都不能访问孟买页面,用户 1 只能访问德里页面,用户 2 和用户 3 只能访问班加罗尔页面,用户 4 只能访问加尔各答页面。

我为德里页面使用了以下代码:

$allowed_users = array('User2','User3','User4');
if (!in_array($login_session['login_user'], $allowed_users)) {
   echo "You dont have permission to access this page";
   echo '<meta http-equiv="refresh" content="1; url=Admin-Dashboard.php">';
   exit();       
}

但它不会工作

4

3 回答 3

0

尝试这样的事情:

$allowed_users = array('User2','User3','User4');
if(isset($login_session['login_user']))
{
    $login = $login_session['login_user'];
  if (!in_array($login, $allowed_users)) {
     Header( "HTTP/1.1 403 Restricted Content" );  
  }
}else{
  Header( "HTTP/1.1 403 Restricted Content" );
}
于 2013-09-05T09:23:12.353 回答
0

它真的对我有用。也许您需要转储 login_session 数组和 allowed 数组。

这段代码完美地完成了你的工作:

<?php
session_start();
$_SESSION['username'] = 'User1';
$login_session = array(
    'id'            =>  session_id(),
    'login_user'    =>  $_SESSION['username']
);
var_dump($login_session['login_user']); // User1
$allowed_users = array('User2','User3','User4');
var_dump(in_array($login_session['login_user'], $allowed_users)); // bool False
if (!in_array($login_session['login_user'], $allowed_users)) { //Check if the logged user is not in this array (False)
   echo "You dont have permission to access this page";
   echo '<meta http-equiv="refresh" content="5; url=include1.php">'; // Printed and redirected
   exit();       
}
于 2013-09-05T09:25:27.897 回答
0

您的代码正在运行,请检查会话变量中的值,或者您可以尝试其他方式

$dis_allowed_users = array('User5','User6','User6');
if (in_array($login_session['login_user'], $dis_allowed_users))
{
    echo "You dont have permission to access this page";
    echo '<meta http-equiv="refresh" content="1; url=Admin-Dashboard.php">';
    exit();       
}
于 2013-09-05T09:25:36.280 回答