-2

アプリケーションで特定の Web ページにアクセスするユーザーを制限したいと考えています。私のアプリケーションには、ムンバイ、デリー、バンガロール、コルカタなどの 4 つの Web ページがあり、User1、User2、User3、User4 という 4 人のユーザーがいます。すべてのユーザーは管理者です。

私の要件は、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

それは本当に私のために働きます。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();       
}
于 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 に答える
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 に答える