限制特定用户访问特定网页

时间:2013-09-05 09:15:27

标签: php

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

我的要求是所有4位用户都无法访问孟买页面, User1只能访问德里页面, User2和User3只能访问Bangalore页面和 User4只能访问Kolkata页面。

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

$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();       
}

但它不起作用

3 个答案:

答案 0 :(得分: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" );
}

答案 1 :(得分:0)

它确实对我有用。也许你需要转储login_session数组和允许的数组。

此代码完美地完成了您的工作:

<?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();       
}

答案 2 :(得分: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();       
}